Compilation instructions for CC3D on multi-core and GPU processors


35
views
1
15 days ago by
JJ Yeo  
May I know whether there are specific instructions on how to compile parallel CC3D with nVidia GPUs on Ubuntu or any other Linux-based clusters?

Also, can the pre-compiled binaries for both Mac OSX and Ubuntu be run on multiple cores? I do not seem to be able to find an option to do that.
Community: CompuCell3D

4 Answers


0
15 days ago by
Anwar  
Can the pre-compiled binaries for both Mac OSX and Ubuntu be run on multiple cores?
Yes. In order to avoid user intervention by default CompuCell3D take advantage of all available cores on the machines. It uses openMP library for parallelization. Most time consuming operations i.e. pixel copy and energy calculations are done in parallel utilizing all cores for better performance.

Are there are specific instructions to compile parallel CC3D with nVidia GPUs on Ubuntu or any other Linux-based clusters?
OpenMP library does provide some specific instructions for GPU compilation. @Maciek Swat would be the best person to answer this question.

Hope it helps. Thanks.
0
14 days ago by
Can the pre-compiled binaries for both Mac OSX and Ubuntu be run on multiple cores?
Actually CC3D needs to be instructed to use multiple cores it is quite simple all you need to do is to to include <Metadata> tag with specification of how many CPU's you want to use

 <CompuCell3D>
  <Metadata>
    <NumberOfProcessors>4</NumberOfProcessors>
    <DebugOutputFrequency>100</DebugOutputFrequency>
 </Metadata>

 <Potts>
   <Dimensions x="200" y="200" z="1"/>
   <Anneal>10</Anneal>
   <Steps>10000</Steps>
   <Temperature>10</Temperature>
   <Flip2DimRatio>1</Flip2DimRatio>
   <NeighborOrder>2</NeighborOrder>
 </Potts>
...
</CompuCell3D>

​

Are there are specific instructions to compile parallel CC3D with nVidia GPUs on Ubuntu or any other Linux-based clusters?

One thing to remember about GPU execution that it applies only to PDE solvers. The core Potts algorithm and all your Python Steppables will still run on CPU. So the bottom line is that your entire simulation will be limited by the slowest component. Now, if you are running a lot of PDE solvers than using GPU's makes sense.

I have not tried compiling GPU modules on linux (did that for OSX and Windows only) but it really should be straightforward. All you need to do is to make sure that OpenCL is installed on your linux cluster and the CMake script will automatically detect the settings. If you look at the CMake configuration dialog below the two settings that decide if the CC3D will have GPU modules are "NO_OPENCL" option (make sure it is unchecked if you wan GPU modules) and the path to OPENCL library



Let me know if you need more help



0
14 days ago by
The compilation steps you should follow on Ubuntu are outlined on 
http://www.compucell3d.org/SrcBin/LinuxCompile
More compilation tutorial can be found on 
http://www.compucell3d.org/DeveloperZone
0
12 days ago by
JJ Yeo  
Thanks for the answers! I will try it out and let you guys know if I run into issues.
Please login to add an answer/comment or follow this question.

Similar posts:
Search »