Experiment scripting tutorial: Difference between revisions

From Grid5000
Jump to navigation Jump to search
No edit summary
No edit summary
Line 2: Line 2:
{{TutorialHeader}}
{{TutorialHeader}}


This tutorial covers several tools that aim at facilitating experiment scripting on Grid'5000.
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.
* '''[http://execo.gforge.inria.fr/doc/latest-stable/index.html 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.
* '''[https://github.com/ruby-cute/ruby-cute 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:
* '''[[Funk]]''' helps you to find resources for your experiments, by:
** giving you the number of nodes available at a date and for walltime
** 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 slots for a combination of resources and a walltime
Line 11: Line 11:
** managing the reservation of the resources
** managing the reservation of the resources


All sections of this tutorial are independent and can be performed in any order.
Those tools are independent and can be studied in any order.


= Execo =
= Execo =
The tutorial can be found [[Execo_Practical_Session|here]].
A tutorial can be found [[Execo_Practical_Session|here]].
= Ruby-Cute =
= Ruby-Cute =
The tutorial can be found in [http://www.rubydoc.info/github/ruby-cute/ruby-cute/master/file/examples/g5k-tutorial.md Ruby-cute tutorial]
A tutorial can be found in [http://www.rubydoc.info/github/ruby-cute/ruby-cute/master/file/examples/g5k-tutorial.md herel]
= Funk: (F)ind yo(U)r (N)odes on g5(K) =
= Funk =
More details can be found [[Funk|here]].
Funk stands for (F)ind yo(U)r (N)odes on g5(K). More details can be found [[Funk|here]].

Revision as of 15:16, 30 March 2018

Note.png Note

This page 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.

Ruby-Cute

A tutorial can be found in herel

Funk

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