Simple example of using Ray
with Allinea PerformanceReports (
perf-report) is shown below:
#!/bin/sh #SBATCH --job-name=Ray #SBATCH --ntasks-per-node=16 #SBATCH --time=10:00:00 #SBATCH --mem=70gb #SBATCH --output=Ray.info #SBATCH --error=Ray.error module load allinea module load compiler/gcc/4.7 openmpi/1.6 ray/2.3 perf-report mpiexec -n 16 Ray -k 31 -p -p input_reads_pair_1.fasta input_reads\_pair_2.fasta -o output_directory
Ray is MPI and therefore additional Allinea Performance Reports options
are not required. The
perf-report command is placed in front of the
Ray command we want to analyze.
When the application finishes, the performance report is generated in the working directory. For the executed application, this is how the report looks like:
From the report, we can see that Ray is Compute-Bound application. Most of the running time is spent in point-to-point calls with a low transfer rate which may be caused by inefficient message sizes. Therefore, running this application with fewer MPI processes and more data on each process may be more efficient.
Running Allinea Performance Reports and identifying application bottlenecks is really useful for improving the application and better utilization of the available resources.