forked from vegalorena24/simulacion
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathtime_compute.sh
92 lines (83 loc) · 3.98 KB
/
time_compute.sh
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
#!/bin/sh
##################################################################
# AUTOR: Oscar Fajardo Fontiveros #
# #
# Programa que calcula el tiempo de ejecucion total de un #
# programa en serie y en paralelo en funcion del numero #
# de procesadores y del numero de particulas #
# #
# #
# #
# #
# #
# #
#----------------------------COMO USARLO-------------------------#
# #
# Al vuestro programa de testeo le teneis que poner antes de #
# compilar, en el contains el comando #
# include 'get_int.inc' #
# #
# Luego le debeis decir a vuestro programa que el número de #
# partículas lo inicialice de la siguiente manera: #
# #
# N = get_int_arg(1,int(256,8)) #
# #
# #
# Si trabajais con integer(4) teneis que poner: #
# #
# N = int(get_int_arg(1,int(256,8)),4) #
# #
# #
# Luego teneis que aseguraros que el archivo get_int.inc esté #
# junto vuestros programas (tanto en serie como en paralelo) #
# y que vuestros ejecutables se llamen main #
# #
# Luego teneis que ir al directorio donde está el script que #
# estais leyendo y ejecutarlo así: #
# #
# sh time_compute.sh maxProcesadores maxParticles #
# #
# AVISO: Debido a la naturaleza del comando time, no sé si #
# este script funciona en el cluster #
# #
#################################################################
#la comanda es....: module load openmpi/1.4.2_intel-11.1.072
thisDir=$(pwd)
maxProcesadors=$1
maxParticles=$2
if [ $# -ne 2 ]; then
echo $0: usage: $0 maxProcesadores maxParticles
exit 1
fi
exec 4> plot_times.gp
echo "set xlabel 'Num particules'">&4
echo "set ylabel 'Temps(s)'">&4
echo "set title 'Temps de computació(# particules)'">&4
for NProcesadors in $(seq 2 $maxProcesadors)
do
cd $thisDir
if [ "$NProcesadors" -eq 2 ]
then
echo "plot '"time_$NProcesadors.dat"' u 1:2 t 'paral·lel amb "$NProcesadors" procs.',\\">&4
else
echo "'"time_$NProcesadors.dat"' u 1:2 t 'paral·lel amb "$NProcesadors" procs.',\\">&4
fi
exec 3> time_$NProcesadors.dat
for NParticles in $(seq 1 $maxParticles)
do
cd $thisDir/MD_paralel
time_paralel=$( { /usr/bin/time -f "%e" mpirun -np $NProcesadors ./main $NParticles; } 2>&1)
echo -e $NParticles' \t '$time_paralel >&3 #'\t'$time_series >&3
done
exec 3<&-
done
echo "'time_series.dat' u 1:2 t 'serie'\\">&4
exec 3> time_series.dat
for NParticles in $(seq 1 $maxParticles)
do
cd $thisDir/MD_serie
time_series=$( { /usr/bin/time -f "%e" ./main $NParticles; } 2>&1)
echo -e $NParticles' \t '$time_series #'\t'$time_series >&3
done
cd $thisDir
echo 'pause(-1)'>&4