|
|
# CyclesPhi
|
|
# 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:
|
|
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
|
|
* OpenMP
|
|
|
* MPI
|
|
* MPI
|
|
|
* Intel® Xeon Phi™ with Offload concept
|
|
* Intel® Xeon Phi™ with Offload concept
|
| ... | @@ -12,7 +13,9 @@ We have modified the kernel of the Blender Cycles rendering engine and then exte |
... | @@ -12,7 +13,9 @@ We have modified the kernel of the Blender Cycles rendering engine and then exte |
|
|
|
|
|
|
|
## Rendering using Intel® Xeon Phi™ and MPI
|
|
## Rendering using Intel® Xeon Phi™ and MPI
|
|
|
### Rendering using OpenMP, Symmetric mode and MPI
|
|
### Rendering using OpenMP, Symmetric mode and MPI
|
|
|
|
|
|
|
build flags:
|
|
build flags:
|
|
|
|
|
|
|
* blender: WITH_IT4I_MPI=ON
|
|
* blender: WITH_IT4I_MPI=ON
|
|
|
* client-cpu: WITH_IT4I_MIC_NATIVE=OFF, WITH_IT4I_MIC_OFFLOAD=OFF
|
|
* client-cpu: WITH_IT4I_MIC_NATIVE=OFF, WITH_IT4I_MIC_OFFLOAD=OFF
|
|
|
* client-mic: WITH_IT4I_MIC_NATIVE=ON, WITH_IT4I_MIC_OFFLOAD=OFF
|
|
* client-mic: WITH_IT4I_MIC_NATIVE=ON, WITH_IT4I_MIC_OFFLOAD=OFF
|
| ... | @@ -20,7 +23,9 @@ build flags: |
... | @@ -20,7 +23,9 @@ build flags: |
|
|

|
|

|
|
|
|
|
|
|
|
### Rendering using OpenMP, Offload and MPI
|
|
### Rendering using OpenMP, Offload and MPI
|
|
|
|
|
|
|
build flags:
|
|
build flags:
|
|
|
|
|
|
|
* blender: WITH_IT4I_MPI=ON
|
|
* blender: WITH_IT4I_MPI=ON
|
|
|
* client: WITH_IT4I_MIC_NATIVE=OFF, WITH_IT4I_MIC_OFFLOAD=ON
|
|
* client: WITH_IT4I_MIC_NATIVE=OFF, WITH_IT4I_MIC_OFFLOAD=ON
|
|
|
|
|
|
| ... | @@ -28,6 +33,7 @@ build flags: |
... | @@ -28,6 +33,7 @@ build flags: |
|
|
|
|
|
|
|
## Building and running CyclesPhi
|
|
## Building and running CyclesPhi
|
|
|
### Building Blender 2.77a with Intel Compiler 2016
|
|
### Building Blender 2.77a with Intel Compiler 2016
|
|
|
|
|
|
|
* https://wiki.blender.org/index.php/Dev:Doc/Building_Blender
|
|
* https://wiki.blender.org/index.php/Dev:Doc/Building_Blender
|
|
|
* Intel® Parallel Studio XE Cluster Edition (free for students)
|
|
* Intel® Parallel Studio XE Cluster Edition (free for students)
|
|
|
* Intel® Manycore Platform Software Stack (Intel® MPSS)
|
|
* Intel® Manycore Platform Software Stack (Intel® MPSS)
|
| ... | @@ -35,36 +41,44 @@ build flags: |
... | @@ -35,36 +41,44 @@ build flags: |
|
|
* Libraries (GCC/ICC): boost (./bjam install toolset=intel), ilmbase, openexr, tiff, openimageio, zlib, Python, …
|
|
* Libraries (GCC/ICC): boost (./bjam install toolset=intel), ilmbase, openexr, tiff, openimageio, zlib, Python, …
|
|
|
|
|
|
|
|
## Building CyclesPhi with Intel Compiler 2016
|
|
## Building CyclesPhi with Intel Compiler 2016
|
|
|
git clone git@code.it4i.cz:blender/cyclesphi.git
|
|
|
|
|
new build flags:
|
|
git clone git@code.it4i.cz:blender/cyclesphi.git
|
|
|
blender
|
|
|
|
|
WITH_IT4I_MIC_OFFLOAD=ON/OFF
|
|
new build flags:
|
|
|
WITH_IT4I_MPI=ON/OFF
|
|
|
|
|
WITH_OPENMP=ON/OFF (old flag)
|
|
* blender: WITH_IT4I_MIC_OFFLOAD=ON/OFF, WITH_IT4I_MPI=ON/OFF, WITH_OPENMP=ON/OFF (old flag)
|
|
|
client
|
|
* client: WITH_IT4I_MIC_NATIVE=ON/OFF, WITH_IT4I_MIC_OFFLOAD=ON/OFF
|
|
|
WITH_IT4I_MIC_NATIVE=ON/OFF
|
|
|
|
|
WITH_IT4I_MIC_OFFLOAD=ON/OFF
|
|
|
|
|
|
|
|
|
|
new folders:
|
|
new folders:
|
|
|
it4i/client
|
|
|
|
|
api/client_api.h – main header with predefined communication tags and structures
|
|
| it4i/client | |
|
|
|
cycles_mic – the shared libraries to rendering on Intel Xeon Phi
|
|
| ----------- | --- |
|
|
|
cycles_mpi – the shared libraries to communication with Blender (root)
|
|
| api/client_api.h | main header with predefined communication tags and structures |
|
|
|
cycles_omp - the shared libraries to rendering on CPU using OpenMP
|
|
| cycles_mic | the shared libraries to rendering on Intel Xeon Phi |
|
|
|
main – blender_client application
|
|
| cycles_mpi | the shared libraries to communication with Blender (root) |
|
|
|
|
|
| cycles_omp | the shared libraries to rendering on CPU using OpenMP |
|
|
|
it4i/scripts (created for Salomon supercomputer with PBS job management system)
|
|
| main | blender_client application |
|
|
|
build_lib.sh – build some basic libraries (boost, …)
|
|
|
|
|
build_blender.sh – build Blender CyclesPhi, which supports Intel Xeon Phi
|
|
| it4i/scripts (created for Salomon supercomputer with PBS job management system) | |
|
|
|
run_blender.sh – run Blender CyclesPhi without MPI
|
|
| ----------- | --- |
|
|
|
run_mpi.sh – run Blender CyclesPhi with MPI support
|
|
| build_lib.sh | build some basic libraries (boost, …) |
|
|
|
|
|
| build_blender.sh | build Blender CyclesPhi, which supports Intel Xeon Phi |
|
|
|
Run CyclesPhi
|
|
| run_blender.sh | run Blender CyclesPhi without MPI |
|
|
|
|
| run_mpi.sh | run Blender CyclesPhi with MPI support |
|
|
|
|
|
|
|
|
## Run CyclesPhi
|
|
|
|
|
|
|
New scripts in it4i/scripts (created for Salomon supercomputer):
|
|
New scripts in it4i/scripts (created for Salomon supercomputer):
|
|
|
run_blender.sh – run Blender CyclesPhi without MPI
|
|
|
|
|
./${ROOT_DIR}/install/blender/Blender
|
|
* run_blender.sh – run Blender CyclesPhi without MPI
|
|
|
run_mpi.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
|
|
`./${ROOT_DIR}/install/blender/Blender`
|
|
|
run_mpi_mic.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
|
|
* run_mpi.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_mic.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`
|
|
|
|
|
|