aslam@m.cs.uiuc.edu (09/08/89)
I am using the EPT (Encore Parallel Threads) package for a numerical analysis application. The setup is rather simple: THREADgo followed by a series of THREADcreate. The THREADcreate calls fail, perhaps due to small stack size. This is what EPT reports: -------------------------------------------- Memory allocation statistics free: 0 255 122 48 29 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 used: 0 1 6 16 3 0 1 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Total in use: 18512, total free: 18352 THREAD(disaster): pid 30359 (0): out of memory IOT trap -------------------------------------------- How do I interpret this information? EPT is out of memory but which memory is it referring it to? I ask for a pretty large chunk in my THREADgo call. I am liberal with stacks also. What do the two lines free: 0 255 122 48 29 0 7 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 used: 0 1 6 16 3 0 1 0 0 0 2 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 mean? I am using UMAX 4.2, R3.2.0 on a 10 processor Multimax. An aside: how can use cdb to debug programs using EPT? CDB can keep track of processes as they are forked but how do I step through the program section as a thread executes it? Commands like '0 P', '1 P' allow me to switch between processes but these are unix processes that are servicing the threads I have created. Sohail Aslam Department of Computer Science University of Illinois arpa aslam@cs.uiuc.edu usenet uiucdcs!aslam bitnet aslam@uiucdcs.BITNET
jb@CS.BROWN.EDU (09/11/89)
The information lists how many blocks of each size are available and used. The first block there is 8 bytes and they increase by powers of 2 from there. The requested amount of memory in THREADgo is all the memory the process has to use. Stacks are allocated out of this heap as well. Unfortunately, there is no dynamic growth of the heap under EPT. If the failure is actually a THREADcreate call, you might have to increase the amount of memory you request in THREADgo. My first guess would be that you are failing on the third call to THREADcreate with each one having a stack of around 4-6K. The reason you have so much left is that it is fragmented. The largest block you can allocated is 512 byte. I don't know of a good debugger for EPT. To try and debug threads, the debugger must understand that there is something else smaller than a process running. Jim