Jonathan Passerat-Palmbach <j.passerat-palmbach@imperial.ac.uk>
Python code
import socket
print("Hello, from {}".format(socket.gethostname()))
Submission script
#!/bin/sh
#PBS -l walltime=0:10:00
#PBS -l select=1:ncpus=1:mem=600mb
#PBS -N class
python /work/jpassera/hellocx1.py
python hellocx1.py
>>> 5 / 2 == 2.5
True
CX1
qsub hellocx1.pbs
>>> 5 / 2 == 2.5
False
View from Imperial’s CX1:
-bash-4.2$ docker ps
-bash: docker: command not found
-bash-4.2$ sudo apt install docker
We trust you have received the usual lecture from the local System
Administrator. It usually boils down to these three things:
#1) Respect the privacy of others.
#2) Think before you type.
#3) With great power comes great responsibility.
[sudo] password for jpassera:
Spoiler alert: not happening
Execution of the same program with different parameters and/or datasets.
OpenMOLE articulates around 3 orthogonal concepts
… and an expressive workflow formalism for distributed computing.
Stuff you can run, taking inputs and producing outputs
Applications have dependencies:
Capture these dependencies and transfer along with the application from Linux to Linux
Distributed execution of (almost) any program to (pretty much) any computing environment
care -o hello.tgz.bin python hello.py 42 test.txt
val arg = Val[Int]
val output = Val[File]
val pythonTask =
CARETask(
workDirectory / "hello.tgz.bin",
"python hello.py ${arg} output.txt") set (
inputs += arg,
outputFiles += ("output.txt", output),
outputs += arg
)
val exploration = ExplorationTask(arg in (0 to 10))
val copy = CopyFileHook(output, workDirectory / "hello${arg}.txt")
exploration -< (pythonTask hook copy)
![]() |
romain.reuillon@iscpif.fr |
![]() |
paul.chapron@iscpif.fr |
![]() |
mathieu.leclaire@iscpif.fr |
![]() |
guillaume.cherel@iscpif.fr |
![]() |
j.passerat-palmbach@imperial.ac.uk |
![]() |
you? |
OpenMOLE | openmole/openmole |
Announcements | @OpenMOLE |
Community blog | blog.openmole.org |