5 server_disks=([4]=sdd [7]=sdd)
16 IOR="/home/ericb/ior/src/C/IOR"
17 script="/home/ericb/eeb_ior_script"
19 testfile=/mnt/lustre/ior_survey_testfile
22 ################################################################################
26 # blockSize=<set from cmdline> -b 8G
27 # transferSize=<set from cmdline> -t 1M
28 # filePerProc=<set from cmdline> -F
29 # testFile=<set from cmdline> -o /mnt/lustre/ior_testfile
30 # uniqueDir=<set from cmdline> -u
31 # verbose=<set from cmdline> -v
32 # reorderTasks=<set from cmdline> -C
35 # collective=0 (MPI only)
36 # individualDataSets=0 [not working]
37 # noFill=0 (HDF5 only)
38 # preallocate=0 (MPI only)
39 # useSharedFilePointer=0 [not working]
40 # useFileView=<MPI only>
41 # useStridedDataType=0(MPI only)
74 # reread (bug in ior means it needs each run needs at least 1 directive)
88 ################################################################################
91 echo $1 | awk '{ nvals=split($1, vals, "-");\
92 if (nvals == 1) print 1;\
93 else if (nvals == 2) printf "%d\n", vals[2] - vals[1] + 1;}'
97 echo $1 | awk '{ split($1, vals, "-"); print vals[1]; }'
104 if [ -z "$range" ]; then
107 chunk=`count_range $range`
108 if ((chunk > n)); then
109 base=`base_range $range`
123 if [ -z "$range" ]; then
126 base=`base_range $range`
127 chunk=`count_range $range`
128 if ((chunk > n)); then chunk=n; fi
129 nodes="${nodes}${sep}${base}"; sep=","
130 if ((chunk > 1)); then nodes="${nodes}-$((base+chunk-1))"; fi
139 while ((radix > 0)); do
140 nodes=`n2noderange $((n+radix)) $@`
141 if [ -n "$nodes" ]; then
152 *G|*g) n=`echo $str | sed 's/[gG]//'`; echo $((n*1024*1024*1024));;
153 *M|*m) n=`echo $str | sed 's/[Mm]//'`; echo $((n*1024*1024));;
154 *K|*k) n=`echo $str | sed 's/[Kk]//'`; echo $((n*1024));;
161 G=$((1024*1024*1024))
164 if ((n%G == 0 && n >= G)); then
166 elif ((n%M == 0 && n >= M)); then
168 elif ((n%K == 0 && n >= K)); then
175 nservers=`countnodes ${servers[@]}`
176 nclients=`countnodes ${clients[@]}`
178 if ((max_clients > nclients)); then max_clients=$nclients; fi
179 if ((file_per_task)); then minusFopt=-F; else minusFopt=""; fi
181 for ((i=min_clients - 1;i<max_clients;i++)); do
182 tc=`printf "%3d tasks, %4d clients" $tasks_per_client $((i+1))`
183 echo "=================================== $tc ================================================"
185 clients="${cluster}`n2noderange $((i+1)) ${clients[@]}`"
186 per_task_size=$((`parse_number $per_client_size`/tasks_per_client))
187 per_task_size=`pp_number $per_task_size`
189 pdsh -b -Rmqsh -w "$clients" -n $tasks_per_client \
190 $IOR -b${per_task_size} -t${transfer_size} $minusFopt -o $testfile -f $script