Graphical User Interface
Overview 🔗This GUI is an advanced editor for OpenMOLE experiment description through OpenMOLE scripts. It allows editing, managing and running them. The way to write these experiments is fully explained in the main documentation of OpenMOLE. We focus here on the way to manage them in the application.
Basically, in OpenMOLE GUI, you can store, editing files, run and monitor experiments, store authentication credentials for distributed computation. The application runs in a browser (Firefox, Chrome, Opera, etc). The First time you run it, you are asked for a password to encrypt your settings (server port, authentication credentials, etc). Your settings data (so not your projects, which are never wiped out) are preserved so long as your password do not change. For now OpenMOLE GUI looks like a web application but still run as a heavy client one. This should change in version 8 or 9.
Starting a project 🔗Clicking on the main red button New project in the menu bar offers 3 choices:
Empty project 🔗Selecting this option creates a new script file called newProject.oms in the current folder and open the (empty) file for edition.
From market place 🔗Selecting this option pops up a dialog containing all the running projects contained in our Market Place. The Market Place is a collection of projects built by users and offer different aspects of experiments that can be run on the OpenMOLE platform with a large variety of programming codes, exploration methods. The sources can be found here. Just select one of the market entries and click on the Dowload button to import it in the current folder.
From existing model sources 🔗The model wizard is a tool designed to quickly import your Model. It both uploads your model archive and prepares the OpenMOLE script for you. The wizard automatically distinguishes your model's programming language among JVM, Netlogo or native codes. Then it detects the potential inputs and outputs. For each input/output, the wizard generates a variable with a relevant name if possible. At the end of the import process, the should run your script without you having to do anything!
To import your model, click on the Your Model. A dialog box pops up. Set your model path in it. The system should now display the programming language, a list of detected inputs / outputs and the command to launch your code. In most cases, you are almost done. Just press the Build button at the bottom: the wizard dialog disappears and the OpenMOLE script is generated in the wordDirectory with your uploaded code! However, you may sometimes want to make some modifications if you observe the system did not correctly detect your code, its inputs/outputs or its launching command.
For each input / output, three actions can be triggered using the icons located on the same line:
- removes the current input/output
- duplicates the current input/output, so that it is both defined as input and output
- or switches an input to output and vice-versa.
The Netlogo applications working with the .nls extension should be previously archived. The system will extract the archives and deal with the extensions as resources of the task (displayed in the resources tab) A seed variable (for the Netlogo random genarator) is automatically generated and passed to the Netlogo Generator through the Netlogo Task.
File Management 🔗The OpenMOLE application essentially handles files: your model files, your model inputs our outputs, and the OpenMOLE scripts, where you describe your experiment.
We distinguish multiple kinds of resources:
- oms (for Open Mole Script) is a file describing an OpenMOLE experiment according to the OpenMOLE language
- external code used in OpenMOLE scripts. Codes written in some specific programming languages (Java, Scala, Netlogo, R, Python, ...) can be edited in the application. However, they will not be compiled.
- other external resources used as input for a model are editable in the application (CSV files, text files, ...), while binary files like images cannot be modified.
The current directory is shown at the top in the folder navigation area. When the folder hierarchy is too deep to fit in the bar, it will be replaced by "...". Clicking on one folder of the stack sets it as the current folder. In the image above, the current directory is for example Pi Computation.
The tool area at the top concerns the current folder and provides with
- filtering this folder by number of entries or by names. It is especially recommended for folders containing a large number of files.
- file or folder creation in the current folder.
- copying files. Clicking this icon make entering in a blue multi-selection mode. Each file selected turns to green. The copy button on top permits to copy all of them. Then a paste button appears and just waits for being pressed from any other folder you go to.
- deleting files. Clicking this icon make entering in a blue multi-selection mode. Each file selected turns to green. The red Delete button on top permits to wipe them out.
- checking for plugins in the current folder.
- uploading a file from your local machine to the current folder
- refreshing the content of the current folder
Then, each file on each line has a settings button permitting for cloning the current file, downloading it, editing its name or removing it. Other actions are available depending on the context (ie the file extension):
- run for .oms file in order to run file without editing it.
- extract for archives in order to produce a directory from an archive file.
- to OMS for code source potentially carried by a Task (.jar, nlogo, .py, etc). It starts the model wizard.
Play and monitor executions 🔗When a .oms file is edited, a Play button appears in the top right corner to start the execution of the workflow. Once the workflow has been started, the execution panel appears, listing information for each execution on a separate row. At any time this execution panel can be closed (without aborting the current runnings) and re-opened by clicking on the running icon
The different statuses of the executions are:
- running: some jobs are running
- success: the execution has successfully finished
- failed: the execution has failed: click on this state to see the errors
- canceled: the execution has been canceled (by means of the button)
Authentications 🔗In OpenMOLE, the computation load can be delegated to remote environments. When clicking on the authentication icon, panel appears with the list (initially empty) of all the defined authentications. To add one authentication, click on New button. The currently supported authentications are:
SSH authentication with login and password (any environment accessed by means of SSH).
Set the remote host name and your login on this machine (for example john on blueberry.org), as well as your password. Once saved, the authentication will be added to your list (by example: email@example.com)
SSH authentication with SSH private key (any environment accessed by means of SSH).
Enter the same three settings as for the SSH Password. Now add your SSH private key by clicking on No certificate. A random name will be associated to your key. Once saved, the authentication will be added to your list (by example: firstname.lastname@example.org)
Grid certificate (.p12) for Grid Computing
It only requires your EGI certificate file and the associated password. Click on No certificate to select your certificate file. It will be renamed to egi.p12. Note that only one EGI certificate is required (you will not need any other one!)
An authentication can be removed by clicking on the trash bin icon. An existing authentication can also be edited by clicking on the name of an authentication in the list.
Each time an authentication is added, a check is made on the mentioned environment (for the EGI ones, a list of VOs to be checked can be set in the EGI authentication settings). If it fails, a red label appears. When clicking on it, the error stack appears.
Plugins 🔗New features can be dynamically inserted in the OpenMOLE platform through plugins. Advanced users build their own plugins to express concepts that might not be present (yet) in OpenMOLE. In OpenMOLE, plugins take the form of jar files. It can also be a JVM based model provided as a plugin. The way to build plugins in OpenMOLE is full described here
To add a plugin, open the plugin management panel. You can upload a new plugin by clicking on the blue top right-hand corner and selecting the corresponding jar file. Once uploaded, the plugin appears in the list.