User Tools

Site Tools


deema:start

Deema project MuPIF portal

This page is intended to provide specific information for Deema users of MuPIF platform.

Prerequisites

Connecting to MuPIF infrastructure

  • Install WireGuard VPN software from https://www.wireguard.com/install/
  • You need VPN client configs to connect to MuPIF infrastructure. These have been distributed to all partners. If you have any problem or need additional keys, please send a request to borek.patzak@cvut.cz
  • On Linux: save the client configuration file in /etc/wireguard, use wg-quick to bring up the interface (e.g. sudo wg-quick up musicode_peerX.conf).
  • On Windows: in the WireGuard GUI, click on “Add Tunnel” and then “Import tunnel(s) from file…”; import the {peer}.conf file and activate the tunnel.
  • Test the connection:
    $ pyro5-nsc -n 172.23.1.1 -p 10000 ping
    Name server ping ok.

MuPIF Services

Using MuPIF Web API

  • Using of the web interface is demonstrated on a simple workflow, which already exists in the MuPIF database. In the list of workflows (http://172.23.1.1:5555/workflows) there is this workflow with wid “workflow_13” - click on the link to go to its detail (or click here: http://172.23.1.1:5555/workflows/workflow_13). The page shows the inputs and outputs of this workflow and a link to create a new execution - click on the “Initialize new execution record” and you get to the created execution's detail. Click on “Set inputs and Task_ID” and submit the imput data. This workflow assumes that we provide two numbers. After saving by clicking on “Submit” you can get back to execution record by clicking on the displayed link. Now you can click on “Schedule execution”, which should change the status from “Created” to “Pending”. After some time (scheduler checks new executions in 30 second period) when the simulation finishes or fails, the page reloads. If the status is “Finished”, click on the “Discover outputs” to see the results of this simple calculation.

Changelog of Important MuPIF updates (in chronological order)

9. 2. 2022

  • Obj_ID in Inputs/Outputs metadata must be of type string.
  • For Type mupif.Property in Inputs/Outputs metadata the “ValueType” must be specified. Choose from following values: [“Scalar”, “Vector”, “Tensor”]

18. 5. 2022

  • The workflow metadata contain item “Models” to describe the instantiation of the contained models. (jobmanager name for remote model and module name with class name for local model) See MuPIF examples. The models are instantiated automatically by the workflow, so there is no need to implement it in the initialize method.
  • The default value of metadata argument in the initialize function was changed to None.

Setting up Model Server

Assuming we have a properly implemented model class named 'ClassnameOfModel', which is derived from mupif.Model and is implemented in file 'model_example.py', we can make it accessible from the Deema VPN network with the following script. First we import mupif and the model class

import mupif as mp
from model_example import ClassnameOfModel

Then we locate the nameserver with

ns = mp.pyroutil.connectNameServer(nshost='172.23.1.1', nsport=10000)

Then the script contains a code, which creates a jobmanager instance with given parameters, runs it and registers it on the nameserver. The maxJobs is an optional parameter specifying how many remote model instances can exist at the same time.

mp.SimpleJobManager(
    ns=ns,
    appClass=ClassnameOfModel,
    appName='Mupif.JobManager@model_name',
    jobManWorkDir='directory_path',
    maxJobs=5
).runServer()

After this script is executed, the jobmanager can be obtained from the nameserver by its name 'Mupif.JobManager@model_name'. With the jobmanager we can remotely instantiate a new instance of our model class. For more information look at the https://github.com/mupif/mupif/blob/Deema/examples/Example13/server.py or other examples.

Interaction with test jobmanager

An existing jobmanager “CVUT.demo01” for model from mupif Example13 (https://github.com/mupif/mupif/tree/Deema/examples/Example13) is running and is registered at the project nameserver, which can be seen in the monitor at http://mupif.org/deema/. To run the workflow in https://github.com/mupif/mupif/blob/Deema/examples/Example13/main.py, which interacts with the this existing jobmanager, run the following command in the Example13 directory:

MUPIF_NS=172.23.1.1:10000 python3 main.py

It asks the given nameserver for the jobmanager named “CVUT.demo01”, which provides a new instance of the model, which it then used for the calculation.

Getting Help

  • The preferred way to get support from CVUT Team is to create a new ticket on GitHub (https://github.com/mupif/mupif/issues). This way you can track progress of your issue and get support quckly.
deema/start.txt · Last modified: 2022/05/18 14:45 by stanislavsulc