MATLAB Answers

The number of workers in PARPOOL is limited to 6 on Linux Cluster

20 views (last 30 days)
BenC
BenC on 4 Nov 2019
Commented: BenC on 5 Nov 2019
I'm currently working through some stereoscopic video processing on a Linux cluster with 11 physical processors and 126 GiB RAM on 2019A. Each physical process has 8 cores (Opteron 6300 series). For some reason, if I try to create a PARPOOL larger than 6 workers, it fails on the verification step. I'm currently running an analysis, but I will post the specific error message once it's complete. I was originally restricted to fewer than 3 workers, but I increased the size of my Java heap memory to 8GB (using java.opts in the /bin/glnxa64/ directory). Memory usage at 6 workers does not come near system limits. How can I open this up to take advantage of the other physical processors on this machine, increase the java heap memory again?

  0 Comments

Sign in to comment.

Accepted Answer

Jason Ross
Jason Ross on 5 Nov 2019
It will be very useful to see the error message.
It's also not clear what scheduler you are using -- is this a local scheduler, MJS, etc? I'm also assuming that when you say "11 physical processors" you mean 11 nodes in the cluster with 126 GiB each?
My initial hunch is that you are hitting some limit set in the user environment -- something like file handles, RAM, vmem size, etc. In addition to the actual error message it might be useful to see the output of the shell command "ulimit -a" or "limit", depending on what your system uses.
In my experience it's usually been that the "descriptors" is set too low, and it needs to be increased.
You could also be running out of communications ports or hitting a communications error if you have firewalls set up (and are using Parallel Server)

  3 Comments

BenC
BenC on 5 Nov 2019
Thanks Jason,
I misspoke, this is a Linux workstation, so running Parallel Computing with a "local" worker group. The workstation has 11 CPUs and a total of 126 GiB physical memory. Unfortunately I can't seem to replicate the specific error message that I saw before. Trying to generate a parpool with 7 workers never completes, instead the process hangs indefinitely with no feedback. The status icon indicates that a parallel pool has been created, but the number of workers stops at 6. Running cluster verification tool, I can make it all the way to the verification step using 7 workers, where the process runs indefinitely with no results. Configuration Tool.PNG
Taking a look at environment limits ...
ULIMIT.PNG
Jason Ross
Jason Ross on 5 Nov 2019
I suggest upping the "open files" setting. I suspect that you are hitting file handle limits. FWIW mine is set to 4096 on my workstation and I up it to 65535 for some servers.
The exact procedure is slightly different for each OS but in general you edit limits.conf and might need to set something in your shell initilization files.
If you want to try a one-off experiment you can set the limit higher in one shell (something like "limit -n 4096"), and launch MATLAB from this shell. The spawned worker processes should inherit the changed limit.
BenC
BenC on 5 Nov 2019
That was the ticket. Thanks so much. Adjusting the "open files" limit fixed the issue.

Sign in to comment.

More Answers (0)

Sign in to answer this question.