Yt
Jump to navigation
Jump to search
This site replaces the former Compute Canada documentation site, and is now being managed by the Digital Research Alliance of Canada. Ce site remplace l'ancien site de documentation de Calcul Canada et est maintenant géré par l'Alliance de recherche numérique du Canada. |
YT rendering on clusters
To install YT for CPU rendering on a cluster in your own directory, please do
$ module load python mpi4py $ virtualenv astro # install Python tools in your $HOME/astro $ source ~/astro/bin/activate $ pip install cython $ pip install numpy $ pip install yt
Then, in normal use, simply load the environment and start python
$ source ~/astro/bin/activate # load the environment $ python ... $ deactivate
We assume that you have downloaded the sample dataset Enzo_64 from http://yt-project.org/data. Start with the following script `grids.py` to render 90 frames rotating the dataset around the vertical axis
import yt from numpy import pi yt.enable_parallelism() # turn on MPI parallelism via mpi4py ds = yt.load("Enzo_64/DD0043/data0043") sc = yt.create_scene(ds, ('gas', 'density')) cam = sc.camera cam.resolution = (1024, 1024) # resolution of each frame sc.annotate_domain(ds, color=[1, 1, 1, 0.005]) # draw the domain boundary [r,g,b,alpha] sc.annotate_grids(ds, alpha=0.005) # draw the grid boundaries sc.save('frame0000.png', sigma_clip=4) nspin = 90 for i in cam.iter_rotate(pi, nspin): # rotate by 180 degrees over nspin frames sc.save('frame%04d.png' % (i+1), sigma_clip=4)
and the job submission script `yt-mpi.sh`
#!/bin/bash #SBATCH --time=0:30:00 # walltime in d-hh:mm or hh:mm:ss format #SBATCH --ntasks=4 # number of MPI processes #SBATCH --mem-per-cpu=3800 #SBATCH --account=... source $HOME/astro/bin/activate srun python grids.py
Then submit the job with `sbatch yt-mpi.sh`, wait for it to finish, and then create a movie at 30fps
$ ffmpeg -r 30 -i frame%04d.png -c:v libx264 -pix_fmt yuv420p -vf "scale=trunc(iw/2)*2:trunc(ih/2)*2" grids.mp4