
-----------------------------------
Dratino
Wed Apr 13, 2011 8:28 pm

How to set memory limits for judging a program?
-----------------------------------
I recently coded what I think is a successful solution to IOI 2004 Problem 1.1 (Artemis), but I have no idea how to test whether the memory usage is under a certain cutoff (by that IOI's standards, 16 MB).

I see something about setrlimit() when I search for it on the Internet, but it seems to have to be applied within the program.

-----------------------------------
Tony
Wed Apr 13, 2011 8:34 pm

RE:How to set memory limits for judging a program?
-----------------------------------
You can use a profiler to measure the memory usage during execution. The exact tools would be language and platform specific.

-----------------------------------
Dratino
Wed Apr 13, 2011 8:55 pm

RE:How to set memory limits for judging a program?
-----------------------------------
I'm using Ubuntu Linux, and Valgrind seems to be the tool for profiling.

Well, I got the profiler running, and the max memory used was about 350 KB.

But how would I actually limit the memory used so that the program would return a bad_alloc error when exceeding the memory limit like it does on TopCoder?

-----------------------------------
Alexander_
Fri Apr 15, 2011 3:40 am

Re: How to set memory limits for judging a program?
-----------------------------------
Hello, You can utilize the ulimit command that should be built in to the BASH shell, i.e.

[code]ulimit -v 16384
ulimit -m 16384[/code]

This will effectively limit child processes of the shell to have a limit of 16 megabytes of virtual memory (v) and resident set size (m) throwing the appropriate errors with a heap alloc of greater size.

You can read more about the function in its man page: http://ss64.com/bash/ulimit.html

-----------------------------------
Dratino
Fri Apr 15, 2011 10:04 pm

RE:How to set memory limits for judging a program?
-----------------------------------
Thanks a lot, that seems to be a working solution.

Would there be a solution for just limiting the memory usage of a single program?

-----------------------------------
bbi5291
Sat Apr 16, 2011 12:29 am

Re: RE:How to set memory limits for judging a program?
-----------------------------------
Thanks a lot, that seems to be a working solution.

Would there be a solution for just limiting the memory usage of a single program?Bash script.

Or just use [url=http://www.wcipeg.com/problem/ioi0412]our judge.
