Experiment scripting tutorial

From Grid5000
Jump to: navigation, search
Note.png Note

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.

Execo

A tutorial can be found here, and an example of usage is also presented in the BigData hands-on tutorial.

Ruby-Cute

A tutorial can be found in here

Funk

Funk stands for (F)ind yo(U)r (N)odes on g5(K). More details can be found here.