Understanding Jacket JMC

[Old posts from the commercial version of ArrayFire] Discussion of ArrayFire using CUDA or OpenCL.

Moderator: pavanky

Understanding Jacket JMC

Postby melonakos » Wed Dec 15, 2010 12:30 pm

We just received the following question:

I want to deploy MATLAB (indvidual) applications to a cluster of computers equipped with Tesla (C2050) GPU. (we manage the cluster using Condor and we do the cluster level parallelising so don't need/want MDCS). However, jobs need to be compiled to comply with Mathworks licensing, but their MCR does NOT support GPUs!

Q: To be clear: would Jacket (JMC) enable us to deploy jobs to GPU enabled computers? Your web page says JMC uses MCR which would imply that it can't.

This is a great question. While it is true that the MATLAB Compiler is not compatible with the Parallel Computing Toolbox (and by corollary not compatible with the gpuArray stuff in PCT) from the MathWorks, Jacket JMC enables the MATLAB Compiler to be compatible with Jacket GPU functions. So with Jacket JMC you can generate standalone executables which will run Jacket-based functions and leverage GPUs. Each of these executables would only be able to access one GPU per executable instance.

Comments on Multi-GPU with Jacket JMC

Note, however, that since the MATLAB Compiler is not compatible with the Parallel Computing Toolbox, you cannot use a PARFOR loop or SPMD statement in the code which you are trying to deploy. And since Jacket MGL currently relies on the Parallel Computing Toolbox, you cannot deploy Jacket MGL applications with Jacket JMC out of the box.

As a workaround, to achieve multi-GPU executables, we have seen Jacket programmers generate multiple separate executables (one master and several slave executables) and assign each executable to a unique GPU using GSELECT. In this sense, Jacket MGL is used to enable more GPUs to become open to computation. Then via MATLAB timer objects, the master executable is able to launch and shutdown the slave executables. All of this, of course, requires some smart engineering work to coordinate the several executables.

Some people have pointed out that the MATLAB Compiler is compatible with MDCS. We have not tested this at AccelerEyes. And that solution would not be deployable royalty free, because every user of that application would have to purchase/install MDCS.

Hopefully this helps paint a fuller picture.

John Melonakos (john@arrayfire.com)
User avatar
Posts: 503
Joined: Tue Jun 10, 2008 9:49 am

Return to [archive-commercial] Programming & Development with ArrayFire