SpeQuloS usage and interface description EDGI JRA2 12/12/2011 1. SpeQuloS usage through web interface ======================================= SpeQuloS interface uses Web service, using a Python and CGI backend. Each SpeQuloS function can be accessed at specific URL. Function arguments are specified using the HTTP GET method. Therefore, SpeQuloS function call URLs always look like following: http:////.py?=&= When connected to the URL, SpeQuloS returns an HTML web page. The function results are enclose inside the following markup:
...
This helps the function call results to be parsed, because the returned HTML page may contain other information such as log. 2. SpeQuloS function for QoS portal =================================== This paragraph describes the SpeQuloS function that should be accessed by users through the QoS portal. 2.1. CreditSystem functions =========================== Ordering credits for QoS support ================================ Web service to order QoS to support a batch by funding some credits - > An order must be placed when a user decide to allocate some credit to one of his batch to enhance its QoS. - File: order.py - Arguments - Using the HTTP GET method: - batch_id -- The batch identifier, as a string - dg_id -- The identifier of the Desktop Grid where the batch is executed, as a string - qosuser_id -- The user identifier, as a string - credit -- The number of credits to allocate to the order, as a positive integer - > If some arguments are missing, a web form will be displayed. - Displays a Web page containing: -
True
if the order is accepted -
False
if the order is denied - Notes: - An order will be denied if there are not enough credits on the user's institution account. - URL example: http://spequlos.eu/spequlos/creditsystem/order.py?batch_id=253&dg_id=boi nc@edgi&qosuser_id=simon&credit=50 Get available credits ===================== Web service to get the number of credits in an institution account and available to an user - File: get_credits.py - Arguments - Using the HTTP GET method: - batch_id -- The batch identifier, as a string - dg_id -- The Desktop Grid indentifier where the batch is executed, as a string - institution_id -- The institution identifier, as a string - qosuser_id -- The user identifier, as a string - > If no arguments are given, a web form will be displayed. - > If several arguments are given, if batch_id, dg_id, and qosuser_id are filled, the number of credits of the corresponding QoS order will be returned. Otherwise, the first argument will be considered. - Displays a Web page containing: -
N
where N is the number of credit. - URL example: http://spequlos.eu/spequlos/creditsystem/get_credits.py?qosuser_id=simon Get current QoS orders ====================== Web service to get the current existing QoS orders - File: get_qosorders.py - Arguments - Using the HTTP GET method: - qosuser_id -- The user identifier, as a string (optional) - > If qosuser_id argument is missing, QoS orders from all users will be displayed. - Displays a Web page containing, for each QoS order existing, a line similar to: -
BATCH_ID DG_ID QOSUSER_ID N
, where BATCH_ID, DG_ID and QOSUSER_ID are the identifiers of the batch, the Desktop Grid and user who created the order and N is the number of credits remaining. - URL example: http://spequlos.eu/spequlos/creditsystem/get_qosorders.py?qosuser_id=sim on 2.2. Oracle functions ===================== Get information on a batch completion ===================================== Web service to get some information on the completion of a batch - File: get_completion_info.py - Arguments - Using the HTTP GET method: - batch_id --- The batch identifier, as a string - dg_id -- The identifier of the Desktop Grid where the batch is executed, as a string - > If some arguments are missing, a web form will be displayed. - Displays a Web page containing:
T R N
where T is the elapsed time since batch submission in second, R the completion rate and N the number of tasks remaining. - URL example: http://spequlos.eu/spequlos/oracle/get_completion_info.py?batch_id=253&d g_id=boinc@edgi&qosuser_id=simon Make prediction about batch completion time =========================================== Web service to get a prediction on remaining time to batch completion - File: predict.py - Arguments - Using the HTTP GET method: - batch_id --- The batch identifier, as a string - dg_id -- The identifier of the Desktop Grid where the batch is executed, as a string - > If some arguments are missing, a web form will be displayed. - Displays a Web page containing:
C T R
where C is the amount of credits to spend in QoS batch enable the prediction, T is the predicted batch completion remaining time with QoS ("None" if unavailable) and R the confidence in the validity of prediction (in a range of +/- 20 percents), comprised between 0 and 1. - URL example: http://spequlos.eu/spequlos/oracle/predict.py?batch_id=253&dg_id=boinc@e dgi 3. SpeQuloS usage ================= Following actions may be performed by SpeQuloS user: - Get the available credits on its institution account (get_credits function). - Order some credits to support a batch (order function). - Know the completion of any batch (get_completion_info function) - Make a prediction on a batch completion (predict function) - Get the QoS orders it belongs (get_qosorders functions), with completion information on the associated batches (get_completion_info.py function)