TIFR - PORTABLE BATCHING SYSTEM

 

Prev

Table of Contents

Next

PBS Memory and Time Limits

Job resource requirements should always be specified. The default values for CPU time and Memory are very small. This is to encourage the accurate request of these precious system resources. The default memory limit is 4mw. The default time limit is 5 minutes. See Specifying Job Resource Requirements for more information on selecting resources.

In order to determine the appropriate memory requirement for your job you may need to experiment. Because the default memory allocation method of the compilers is stack, the size command may underestimate memory requirements. One simple method is to run your code with an exaggerated memory request for a short time period that is long enough to encounter all memory expansion likely to take place during the execution of your job. PBS puts out a resource report to Standard Output that describes all system resources requested and used. The memory used is rounded up to the
nearest mega word. This should be accurate enough.

Since different data cases may cause a program to take different paths through its calling tree, you may get different maximum sizes from run to run. Multitasking will also increase job size, so test the memory size again when you switch to multitasking.

Another consideration with regard to memory use is to accurately size the HEAP--that part of user memory space where the STACK resides and other dynamically allocated memory for the program. With the growing size of programs, getting the maximum memory required at program startup reduces the impact of large memory jobs on the system. This may require increasing the initial size of the HEAP. This can be done with loader options.

Determining time requirements will be dependent on the time interval for one iteration of your program times the number of iterations to be performed plus some start up and shut down time plus a little extra time for indeterminate variations caused by the system environment at any given moment.

The example script below shows how to find the time and size of an executable program called myprog.

#Submit job to the large queue
#PBS-lmem=125mw
#PBS-lcput=300
./myprog

The ".o" file containing standard output will contain information as to how long the job ran and how much memory was used.

TOP