Funk

From Grid5000
Jump to navigation Jump to search

(F)ind yo(U)r (N)odes on g5(K) is a tool that help you to plan your experiments on Grid'5000. It is a Python script based on Execo that:

  • give you the number of nodes available at a date and for walltime
  • find the slots for a combination of resources and a walltime
  • find the slot with the maximum number of nodes for a period and a walltime.

Some basic examples can be found here.

Funk Slots.png

Projet source, issue and feature requests can be found here.


Running the tool

Inside Grid'5000

Terminal.png frontend:
$ funk -h

See below for options descriptions.

Outside Grid'5000

You need to install execo and configure it for Grid'5000.

You also need python-httplib2 to make use of the request on the Grid'5000 API. If you have no admin rights, install it with :

 easy_install --user httplib2

or

 pip install --user httplib2

Once it is done, you can clone the repository with:

 git clone https://github.com/lpouillo/Funk.git

and run the script.

Usage

I want to find how many nodes are currently available on sites lyon,nancy,rennes for a walltime of 3 hours

Terminal.png frontend:
funk -m date -r lyon,nancy,rennes -w 3:00:00

I have a deadline in one week and I absolutely need to run a large scale experiment on the whole platform (avoiding periods under usage policy restrictions)

Terminal.png frontend:
funk -m max -r grid5000 -w 4:00:00 -e "2014-02-17 16:00:00" -c

I need specific resources combination for my experiments and I want to know when a slot will be available, with deploy job type, and reserve it automatically (-y option) :

Terminal.png frontend:
funk -m free -r taurus:2,nancy:100 -w 10:00:00 -o "-t deploy" -y

Please be aware of the Grid'5000 Usage Policy or use -c to avoid usage policy periods. A walltime for a night reservation is 11:58:00 or is for a weekend 62:58:00.

Options

General options

Define mode and controls I/O.

 -h, --help            show this help message and exit
 --version             show program's version number and exit
 -m MODE, --mode MODE  Setup the mode: date, free or max 
                       default = date
 -y, --yes             Perform the reservation automatically
 --quiet               Run without printing anything
 -v, --verbose         Run in verbose mode
 -p PROGRAM, --program PROGRAM
                       The program to be run when the reservation start
 --plots               Draw a Gantt plot and the slots
 --json                Output the computed data to standard output
 --json-file JSON_FILE
                       Output the computed data to a json file

Reservation

Customize your Grid'5000 reservation.

 -r RESOURCES, --resources RESOURCES
                       Comma separated list of Grid'5000 elements  (grid5000, site or cluster)
                       -r element1,element2 for date and max modes
                       -r element1:n_nodes1,element2:n_nodes2 for free mode
                       default = grid5000
 -b BLACKLIST, --blacklist BLACKLIST
                       Remove clusters from planning computation
 -R RATIO, --ratio RATIO
                       Apply a given ratio to the host resources
 -o SUBMISSION_OPTS, --submission_opts SUBMISSION_OPTS
                       Extra options to pass to the oarsub/oargridsub command line
 -k, --kavlan          Ask for a KaVLAN
 -n SUBNET, --subnet SUBNET
                       Ask for subnets. slash_22=1 will retrieve a /22 subnet on every site of your requests, 
                       but you can specify site1:slash_22=2,site2:slash_19=1
 -j JOB_NAME, --job_name JOB_NAME
                       The job name passed to the OAR subjobs
                       default = FUNK
 -q QUEUE, --queue QUEUE
                       The OAR queue to use
                       default = default
 --virtual             Use only clusters with hardware virtualization
 --infiniband          Use only clusters with infiniband or myrinet interfaces
 --green               Use only clusters that have energetical power measurements
 --no-oargrid          Don't use oargridsub and perform parallel oar reservations
 --force-oargrid       Force the usage of oargrisub, even if only one site is involved

Time

Define options related to date and time.

 -w WALLTIME, --walltime WALLTIME
                       Reservation walltime in OAR format
                       default = 1:00:00
 -s STARTDATE, --startdate STARTDATE
                       Starting date in OAR format
                       default = 1443470554
 -e ENDDATE, --enddate ENDDATE
                       End date in OAR format
                       default = 1445284954
 -c, --charter         Avoid charter (usage policy) periods