Note: This was originally posted by an inactive account. Content was preserved by moving under an admin account.
Originally posted by: ejonesHi Sreekanth,
Yes, generally most people run all graphs under the same application user. But I don't see an issue with creating multiple users for batch jobs unless maybe there is something in your environment I'm not aware of. This would be a good way of managing the thread pooling.
Also, you can override parameters for individual graph runs using the -P option. So when you execute the laeController command add -P 'ls.brain.controller.farm = ( "localhost:7721:9" )' (changing the 9 to the number you want and using the correct port number which is usually 7721)
So to answer your specific numbered questions:
1) Each job will get its own 20 threads to use as it pleases (unless limited by thread pooling)
2) Two jobs will spawn in parallel 40 (20+20) competing for available CPUs. But remember also that depending on how the graph is built, a job may only be able to use a few of the 20 threads at any one time.
3) There is no sharing, you'd have to use thread pooling to control sharing.
4) Exactly, each graph will be able to run up to 20 threads depending on the graph construction
5) The best answer I am aware of is that you can use the "-brdlog <logfilename>.brd" option on the command line with laeController. This causes the controller to create an output log in the BRD format that is available for analysis by an LAE graph. You'll be able to read this log file, and figure out the start and end times for each node. Then the strategy that I've seen work is to check each 5 minute increment and calculate the number of nodes running at that instant in time. (With this information, it seems like there should be a good strategy that you could use to calculate the peak number of threads used by a run, but nothing is coming to mind yet)