Commit 1457fee7 authored by strakpe's avatar strakpe

doc update

parent f51e9799
......@@ -33,31 +33,31 @@ To make CyclesPhi effectively utilize HPC resources it has been modified to supp
CyclesPhi application works closely with Blender, since CyclesPhi is modified version of Blender's renderer.
CyclesPhi is capable of rendering Blender scenes while distributing the rendering task on multiple cluster nodes using MPI.
Communication between Blender and CyclesPhi is via file transfer.
Overview of working principle is depicted in picture below.
Overview of working principle is depicted in pictures below.
![](https://code.it4i.cz/raas/cyclesphi/raw/master/cyclesPhi_principle.png)
![](https://code.it4i.cz/raas/cyclesphi/raw/master/cyclesPhi_principle_CPU.png)
![](https://code.it4i.cz/raas/cyclesphi/raw/master/cyclesPhi_principle_MIC.png)
---
# Compatibility
---
Although CyclesPhi is compatible only with modified version of Blender 2.8, scenes from standard Blender 2.8 are of course supported.
Modification of Blender is necessery to sufficiently support MIC architecture on cluster.
Modification of Blender is necessery to sufficiently support MPI technology on cluster.
Build of modified Blender version is part of CyclesPhi building procedure.
---
# Building and running CyclesPhi
---
### Building Blender 2.8 with GCC 6.X/7.X/8.X
* https://wiki.blender.org/index.php/Dev:Doc/Building_Blender
For running CyclesPhi and modified version of Blender on HPC cluster it is necessary to prepare Singularity image with Debian OS first.
### Creating Singularity image with Debian (under Ubuntu 18.04)
### Building Blender Client 2.8 with Intel Compiler 2017/2018, GCC 6.X/7.X/8.X
* Intel® Parallel Studio XE Cluster Edition (free for students)
* Intel® Manycore Platform Software Stack (Intel® MPSS)
* CMake 3.X, GCC 6.X/7.X/8.X (Linux)
Singularity image with Debian OS is prepared on local computer.
Here it is described, how to prepare it under Ubuntu 18.04.
### Creating Singularity in Ubuntu 18.04
```
sudo apt-get update
sudo snap install docker
......@@ -81,7 +81,18 @@ sudo singularity build debian_blender.img \[debian_blender\]/
scp debian_blender.img salomon.it4i.cz:~/.
```
### Building CyclesPhi on Cluster
### Building CyclesPhi and modified Blender version on HPC Cluster
Supplied shell script downloads source codes from git repository and builds CyclesPhi and Blender into selected directory on HPC cluster.
First, the CyclesPhi is built then Blender is built.
The script builds two versions of CyclesPhi.
One for CPU rendering and the other one for rendering on MIC accelerators.
To successfully compile both versions of CyclesPhi it is necessary to allocate accelerated node that consists of CPU and MIC alltogether.
Second, the modified version of Blender is built.
To successfully build it on cluster Singularity image is required.
All process is automatically handled by supplied shell script.
```
ssh salomon.it4i.cz
mkdir ~/project-cyclesphi
......@@ -96,7 +107,17 @@ cd ~/project-cyclesphi/.
exit
```
# Running CyclesPhi on MICs
---
# Running CyclesPhi - example
---
After building CyclesPhi and Blender it is possible to run the rendering task either on CPU nodes or MIC nodes.
Descriptions is provided below.
To supply your own Blender scene to render you have to modify the script **run_blender_pre.sh**.
If you choose either of two rendering possibilities (CPU, MIC), you can specify how many resources to use in section **select=**, meaning the number of devices in case of MIC or number of nodes in case of CPU.
### Running on MICs
```
pre=$(qsub -q qexp -l select=1 ./scripts/run_blender_pre.sh)
rend=$(qsub -A OPEN-0-0 -W depend=afterok:$pre -q qmic -l select=25 ./scripts/run_blender_mic.sh)
......@@ -104,23 +125,31 @@ post=$(qsub -W depend=afterok:$rend -q qexp -l select=1 ./scripts/run_blender_po
echo $pre '->' $rend '->' $post
```
# Running CyclesPhi on CPUs
### Running on CPUs
```
pre=$(qsub -q qexp -l select=1 ./scripts/run_blender_pre.sh)
rend=$(qsub -A OPEN-0-0 -W depend=afterok:$pre -q qprod -l select=5 ./scripts/run_blender_cpu.sh)
rend=$(qsub -A OPEN-0-0 -W depend=afterok:$pre -q qprod -l select=5 -l cpu_hyper_threading=true ./scripts/run_blender_cpu.sh)
post=$(qsub -W depend=afterok:$rend -q qexp -l select=1 ./scripts/run_blender_post.sh)
echo $pre '->' $rend '->' $post
```
# Result
Car Demo - The popular BMW demo by Mike Pan. (CC0, 3 MB)
### Result
After running the previously described CyclesPhi application, either on MIC or CPU, you can find the rendered example in folder **~/project-cyclesphi/data/**.
Example contains a car demo - The popular BMW scene by Mike Pan (CC0), see below.
![](https://code.it4i.cz/raas/cyclesphi/raw/master/client/data/bmw27.png)
---
# License
---
This software is licensed under the terms of the [GNU General Public License](https://code.it4i.cz/raas/cyclesphi/blob/master/COPYING).
---
# Acknowledgement
---
This work was supported by The Ministry of Education, Youth and Sports from the Large Infrastructures for Research, Experimental Development and Innovations project ”IT4Innovations National Supercomputing Center – LM2015070”.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment