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