Hi,

I've been setting up Docker for NONMEM with NMQual and PsN (https://github.com/billdenney/Pharmacometrics-Docker). The docker containers work with MPI in a static fashion-- as an example, I can start a run with 4 cores, but I can't add or remove cores from the run.


MPI appears to have the ability to dynamically size jobs [1], but I don't see a way to do this within NONMEM. I'd like to maximize my NONMEM license use by always using all the licensed cores. I recognize that I can just run jobs sequentially using 4 cores each, but if one model takes significantly longer than the others, I'd like the others to go ahead and finish while the long-running job works. Examples are:

Example 1: I start 1 NONMEM job with 4 parallel threads, and all threads are in use through completion of the job (this currently works).

Example 2: I start 4 NONMEM jobs with 1 thread each, and each job runs to completion (this currently works).

Example 3: I start 4 NONMEM jobs with up to 4 threads each, but I want to stay within my license, so I only want 1 core used until some of the jobs finish. Job 1 completes first, so I'd like to have Job 2 expand to 2 cores. Job 2 completes, so I'd like to have Job 3 and Job 4 expand to 2 cores each. Job 3 completes, so I'd like to have Job 4 expand to 4 cores. (This doesn't work right now.)

Example 4: I start 3 NONMEM jobs with up to 4 threads each, but I want to stay within my license, so I want Job 1 to start with 2 cores and Jobs 3 and 4 to start with 1 core. As jobs finish, they expand similarly to Example 3.

[1] http://www.netlib.org/utk/people/JackDongarra/WEB-PAGES/SPRING-2012/Lect05-dynamicprocesses.pdf

Thanks,

Bill

------------------------------------------------------------------------
Human Predictions Logo <http://www.humanpredictions.com>*William S. Denney, PhD*
Chief Scientist, Human Predictions LLC
+1-617-899-8123
wden...@humanpredictions.com

Reply via email to