CyclesPhi
We have modified the kernel of the Blender Cycles rendering engine and then extended its capabilities to support the HPC environment. We call this version the CyclesPhi and it supports following technologies:
- OpenMP
- MPI
- Intel® Xeon Phi™ with Offload concept
- Intel® Xeon Phi™ with Symmetric mode
- And their combinations
Rendering using Intel® Xeon Phi™ and MPI
Rendering using OpenMP, Symmetric mode and MPI
build flags:
- blender: WITH_IT4I_MPI=ON
- client-cpu: WITH_IT4I_MIC_NATIVE=OFF, WITH_IT4I_MIC_OFFLOAD=OFF
- client-mic: WITH_IT4I_MIC_NATIVE=ON, WITH_IT4I_MIC_OFFLOAD=OFF
Rendering using OpenMP, Offload and MPI
build flags:
- blender: WITH_IT4I_MPI=ON
- client: WITH_IT4I_MIC_NATIVE=OFF, WITH_IT4I_MIC_OFFLOAD=ON
Building and running CyclesPhi
Building Blender 2.77a with Intel Compiler 2016
- https://wiki.blender.org/index.php/Dev:Doc/Building_Blender
- Intel® Parallel Studio XE Cluster Edition (free for students)
- Intel® Manycore Platform Software Stack (Intel® MPSS)
- Microsoft Visual Studio 2013 (Windows) or Netbeans 8.1, CMake 3.3, GCC 5.3 (Linux)
- Libraries (GCC/ICC): boost (./bjam install toolset=intel), ilmbase, openexr, tiff, openimageio, zlib, Python, …
Building CyclesPhi with Intel Compiler 2016
git clone git@code.it4i.cz:blender/cyclesphi.git
new build flags:
- blender: WITH_IT4I_MIC_OFFLOAD=ON/OFF, WITH_IT4I_MPI=ON/OFF, WITH_OPENMP=ON/OFF (old flag)
- client: WITH_IT4I_MIC_NATIVE=ON/OFF, WITH_IT4I_MIC_OFFLOAD=ON/OFF
new folders:
it4i/client | |
---|---|
api/client_api.h | main header with predefined communication tags and structures |
cycles_mic | the shared libraries to rendering on Intel Xeon Phi |
cycles_mpi | the shared libraries to communication with Blender (root) |
cycles_omp | the shared libraries to rendering on CPU using OpenMP |
main | blender_client application |
it4i/scripts (created for Salomon supercomputer with PBS job management system) | |
---|---|
build_lib.sh | build some basic libraries (boost, …) |
build_blender.sh | build Blender CyclesPhi, which supports Intel Xeon Phi |
run_blender.sh | run Blender CyclesPhi without MPI |
run_mpi_offload.sh | run Blender CyclesPhi with MPI support |
Run CyclesPhi
New scripts in it4i/scripts (created for Salomon supercomputer):
- run_blender.sh – run Blender CyclesPhi without MPI
./${ROOT_DIR}/install/blender/Blender
- run_mpi_offload.sh – run Blender CyclesPhi with MPI (only CPU / MIC‘s offload mode)
mpirun -n 1 ${ROOT_DIR}/install/blender/blender : -n 1 ${ROOT_DIR}/install/blender_client/bin/blender_client
- run_mpi_symmetric.sh – run Blender CyclesPhi with MPI support with Symmetric mode
mpirun -genv LD_LIBRARY_PATH $MIC_LD_LIBRARY_PATH -machine $NODEFILECN -n 1 ${ROOT_DIR}/install/blender/blender : -n $NUMOFCN ${ROOT_DIR}/install/blender_client/bin/blender_client