Newer
Older
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
#!/usr/bin/env python3
import subprocess
def slurm_gpu(version, ntasks, mem_per_cpu, time):
return f"""#!/bin/sh
#SBATCH --job-name=gol.out
#SBATCH --output=gol-{version}-{ntasks}.out.o%j
#SBATCH --ntasks={ntasks}
#SBATCH --cpus-per-task=1
#SBATCH --partition=shared-gpu
#SBATCH --gpus=rtx:{ntasks}
#SBATCH --mem-per-cpu={mem_per_cpu}
#SBATCH --time={time}
srun /home/users/c/coudrayb/projet-de-bachelor/game_of_life/cmake-build-release/game_of_life_{version}_bench {ntasks if ntasks < 16 else 8} 30000 30000
"""
def slurm_cpu(version, ntasks, mem_per_cpu, time):
return f"""#!/bin/sh
#SBATCH --job-name=gol.out
#SBATCH --output=gol-{version}-{ntasks}.out.o%j
#SBATCH --ntasks={ntasks}
#SBATCH --cpus-per-task=1
#SBATCH --partition=public-bigmem
#SBATCH --mem-per-cpu={mem_per_cpu}
#SBATCH --time={time}
srun /home/users/c/coudrayb/projet-de-bachelor/game_of_life/cmake-build-release/game_of_life_{version}_bench 1 30000 30000
"""
HOURS = ["00:20:00", "06:00:00", "03:00:00", "02:00:00", "01:00:00", "01:00:00", "01:00:00"]
def main():
for version in ["cuda"]:
for i in range(0, 3):
ntasks = 2 ** i
mem_per_cpu = "8000" if ntasks <= 2 else "4000"
time = HOURS[0]
if version == "seq" or version == "mc":
content = slurm_cpu(version, ntasks, mem_per_cpu, time)
else:
content = slurm_gpu(version, ntasks, mem_per_cpu, time)
filename = f"srun_{version}_{ntasks}.sh"
with open(filename, "w") as fh:
fh.write(content)
subprocess.run(["/usr/bin/sbatch", filename])
if __name__ == '__main__':
main()