Experiment scripting tutorial
This tutorial is actively maintained by the Grid'5000 team. If you encounter problems, please report them (see the Support page). Additionally, as it is a wiki page, you are free to make minor corrections yourself if needed. If you would like to suggest a more fundamental change, please contact the Grid'5000 team.
This page presents several tools that aim at facilitating experiment scripting on Grid'5000.
- Execo offers a Python API for asynchronous control of local or remote, standalone or parallel, unix processes. It is especially well suited for quickly and easily scripting workflows of parallel/distributed operations on local or remote hosts: automate a scientific workflow, conduct computer science experiments, perform automated tests, etc. The core python package is execo. The execo_g5k package provides a set of tools and extensions for the Grid5000 testbed. The execo_engine package provides tools to ease the development of computer sciences experiments.
- Ruby-Cute is a set of Commonly Used Tools for Experiments, or Critically Useful Tools for Experiments, depending on who you ask. It is a library aggregating various Ruby snippets useful in the context of (but not limited to) development of experiment software on distributed systems testbeds such as Grid'5000. Ruby-Cute is structured in different modules. G5K module allows you to communicate with Grid'5000. Net::SSH::Multi module allows the parallel execution of commands in several remote machines using the SSH protocol. TakTuk module is a wrapper of taktuk parallel command executor.
- Funk helps you to find resources for your experiments, by:
- giving you the number of nodes available at a date and for walltime
- finding the slots for a combination of resources and a walltime
- finding the slot with the maximum number of nodes for a period and a walltime
- managing the reservation of the resources
Those tools are independent and can be studied in any order.
A tutorial can be found in here
Funk stands for (F)ind yo(U)r (N)odes on g5(K). More details can be found here.