| | 100 | |
| | 101 | |
| | 102 | === Example 3: same R code requesting 2 nodes - 1 node unused === |
| | 103 | |
| | 104 | The following uses the same the R sampling code as above (see [wiki:cypress/R#PassingSLURMEnvironmentVariables here]) requesting 16 cores and 2 nodes (--nodes - one of which is unused. |
| | 105 | |
| | 106 | {{{ |
| | 107 | [tulaneID@cypress1 R]$diff bootstrap.sh bootstrap2nodes.sh |
| | 108 | 7c7 |
| | 109 | < #SBATCH --nodes=1 # Number of Nodes |
| | 110 | --- |
| | 111 | > #SBATCH --nodes=2 # Number of Nodes |
| | 112 | [tulaneID@cypress1 R]$sbatch bootstrap2nodes.sh |
| | 113 | Submitted batch job 3289779 |
| | 114 | [tulaneID@cypress1 R]$squeue -u $USER |
| | 115 | JOBID PARTITION NAME USER ST TIME NODES NODELIST(REASON) |
| | 116 | 3289779 workshop7 R tulaneID R 0:03 2 cypress01-[009-010] |
| | 117 | [tulaneID@cypress1 R]$ssh cypress01-009 'top -b -n 1 -u $USER' | \ |
| | 118 | awk 'NR > 7 { sum_cpu += $9; sum_mem += $10 } \ |
| | 119 | END { print "Total %CPU:", sum_cpu; print "Total %MEM:", sum_mem }' |
| | 120 | Total %CPU: 1587.6 |
| | 121 | Total %MEM: 3.3 |
| | 122 | [tulaneID@cypress1 R]$ssh cypress01-010 'top -b -n 1 -u $USER' | \ |
| | 123 | awk 'NR > 7 { sum_cpu += $9; sum_mem += $10 } \ |
| | 124 | END { print "Total %CPU:", sum_cpu; print "Total %MEM:", sum_mem }' |
| | 125 | Total %CPU: 13.3 |
| | 126 | Total %MEM: 0 |
| | 127 | }}} |
| | 128 | |
| | 129 | The resulting core efficiency is |
| | 130 | {{{ |
| | 131 | [tulaneID@cypress1 R]$bc <<< "scale=3; (1587.6 / 100) / 16" |
| | 132 | .992 |
| | 133 | [tulaneID@cypress1 R]$bc <<< "scale=3; (13.3 / 100) / 16" |
| | 134 | .008 |
| | 135 | }}} |
| | 136 | Result: |
| | 137 | * On the first node, cypress01-009, usage is '''nearly ideal''' (.992 ~= 1.0). |
| | 138 | * On the second node, cypress01-010, usage is '''nearly non-existent''' (.008 ~= 0.0). |
| | 139 | |
| | 140 | == Running R on multiple nodes == |
| | 141 | See also [wiki:/cypress/R#RunningRonmultiplenodes Running R on multiple nodes]. |