103 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			103 lines
		
	
	
		
			2.8 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								#!/bin/bash
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								binary=./release/benchmarks/basic
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								[ -x "${binary}" ] || exit 1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Utilities
							 | 
						||
| 
								 | 
							
								measure() {
							 | 
						||
| 
								 | 
							
									coreset=$1
							 | 
						||
| 
								 | 
							
									size=$2
							 | 
						||
| 
								 | 
							
									method=$3
							 | 
						||
| 
								 | 
							
									sample=$4
							 | 
						||
| 
								 | 
							
									ncores=$5
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									t=$(eval "taskset -c ${coreset} ${binary} ${size} ${method} ${sample}"|cut -d' ' -f2)
							 | 
						||
| 
								 | 
							
									echo "${t}"
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								csv() {
							 | 
						||
| 
								 | 
							
									echo "$*"|tr ' ' ','
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								## benchmarks
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### No parallelism, sequential/generic, variable array sizes
							 | 
						||
| 
								 | 
							
								bSeq() {
							 | 
						||
| 
								 | 
							
									method=0
							 | 
						||
| 
								 | 
							
									sizes=(100 1000 10000 100000 1000000)
							 | 
						||
| 
								 | 
							
									coreset=0
							 | 
						||
| 
								 | 
							
									cores=1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									for size in ${sizes[@]}; do
							 | 
						||
| 
								 | 
							
										ts_seq=($(measure "${coreset}" "${size}" seq $method $cores))
							 | 
						||
| 
								 | 
							
										ts_gen_omp=($(measure "${coreset}" "${size}" gen_omp $method $cores))
							 | 
						||
| 
								 | 
							
										ts_gen_thread=($(measure "${coreset}" "${size}" gen_thread $method $cores))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										echo "$size ; $ts_seq ; $ts_gen_omp ; $ts_gen_thread"
							 | 
						||
| 
								 | 
							
									done
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Fixed coreset, omp/generic, variable array sizes
							 | 
						||
| 
								 | 
							
								bSizes() {
							 | 
						||
| 
								 | 
							
									method=$1
							 | 
						||
| 
								 | 
							
									sizes=(100 1000 10000 100000 1000000)
							 | 
						||
| 
								 | 
							
									coreset="0,4,8,12,16,20,24,28"
							 | 
						||
| 
								 | 
							
									cores=8
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									for size in ${sizes[@]}; do
							 | 
						||
| 
								 | 
							
										ts_seq=($(measure "${coreset}" "${size}" seq $method $cores))
							 | 
						||
| 
								 | 
							
										ts_omp=($(measure "${coreset}" "${size}" omp $method $cores))
							 | 
						||
| 
								 | 
							
										ts_gen_omp=($(measure "${coreset}" "${size}" gen_omp $method $cores))
							 | 
						||
| 
								 | 
							
										ts_gen_thread=($(measure "${coreset}" "${size}" gen_thread $method $cores))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										ts_omp2=`bc <<< "scale=6; $ts_omp/$cores"`
							 | 
						||
| 
								 | 
							
										ts_gen_omp2=`bc <<< "scale=6; $ts_gen_omp/$cores"`
							 | 
						||
| 
								 | 
							
										ts_gen_thread2=`bc <<< "scale=6; $ts_gen_thread/$cores"`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										echo "$size ; $ts_seq ; $ts_omp ; $ts_omp2 ; $ts_gen_omp ; $ts_gen_omp2 ; $ts_gen_thread ; $ts_gen_thread2"
							 | 
						||
| 
								 | 
							
									done
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								#### Fixed array size, omp/generic, variable coresets
							 | 
						||
| 
								 | 
							
								bCores() {
							 | 
						||
| 
								 | 
							
									method=$1
							 | 
						||
| 
								 | 
							
									size=100000
							 | 
						||
| 
								 | 
							
									coresets=("0" "0,4" "0,4,8,12" "0,4,8,12,16,20" "0,4,8,12,16,20,24,28" "0,4,8,12,16,20,24,28,32,36" "0,4,8,12,16,20,24,28,32,36,40,44" "0,4,8,12,16,20,24,28,32,36,40,44,48,52" "0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60")
							 | 
						||
| 
								 | 
							
									cores=1
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									for coreset in ${coresets[@]}; do
							 | 
						||
| 
								 | 
							
										ts_seq=($(measure "${coreset}" "${size}" seq $method $cores))
							 | 
						||
| 
								 | 
							
										ts_omp=($(measure "${coreset}" "${size}" omp $method $cores))
							 | 
						||
| 
								 | 
							
										ts_gen_omp=($(measure "${coreset}" "${size}" gen_omp $method $cores))
							 | 
						||
| 
								 | 
							
										ts_gen_thread=($(measure "${coreset}" "${size}" gen_thread $method $cores))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										ts_omp2=`bc <<< "scale=6; $ts_omp/$cores"`
							 | 
						||
| 
								 | 
							
										ts_gen_omp2=`bc <<< "scale=6; $ts_gen_omp/$cores"`
							 | 
						||
| 
								 | 
							
										ts_gen_thread2=`bc <<< "scale=6; $ts_gen_thread/$cores"`
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										echo "$cores ; $ts_seq ; $ts_omp ; $ts_omp2 ; $ts_gen_omp ; $ts_gen_omp2 ; $ts_gen_thread ; $ts_gen_thread2"
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
										if [ $cores == 1 ]; then
							 | 
						||
| 
								 | 
							
											cores=2
							 | 
						||
| 
								 | 
							
										else
							 | 
						||
| 
								 | 
							
											cores=$[cores+2]
							 | 
						||
| 
								 | 
							
										fi
							 | 
						||
| 
								 | 
							
									done
							 | 
						||
| 
								 | 
							
								}
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								bCores 1 | tee ./scripts/result_cores_1.csv
							 | 
						||
| 
								 | 
							
								./scripts/result_cores_1.plot
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								bCores 2 | tee scripts/result_cores_2.csv
							 | 
						||
| 
								 | 
							
								./scripts/result_cores_2.plot
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								bSizes 1 | tee scripts/result_sizes_1.csv
							 | 
						||
| 
								 | 
							
								./scripts/result_sizes_1.plot
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								bSizes 2 | tee scripts/result_sizes_2.csv
							 | 
						||
| 
								 | 
							
								./scripts/result_sizes_2.plot
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								bSeq | tee scripts/result_seq.csv
							 | 
						||
| 
								 | 
							
								./scripts/result_seq.plot
							 |