Presentation is loading. Please wait.

Presentation is loading. Please wait.

University of Westminster Centre for Parallel Computing

Similar presentations


Presentation on theme: "University of Westminster Centre for Parallel Computing"— Presentation transcript:

1 University of Westminster Centre for Parallel Computing
A Customised and Extendible Science Gateway Supporting Diverse Local User Communities  University of Westminster Centre for Parallel Computing Peter Borsody 05/2013 IWSG 2013, Zurich, Switzerland 04/18/13

2 Goals Support local university researchers, teachers to use distributed computing Without writing a line of code Current applications: Rendering (based on MentalRay 3D graphics software) Docking (based on Autodock and Autodock Vina) Portal gives high level view for users Separate “view layout” for separate users/groups Hide the complex system from users 04/18/13

3 Portlets Rendering Lets see the portlets! Interface Rendering.
Computer animation and games students can render their coursework They should submit a Computer-generated imagery (CGI) animation during their studies, which takes a very large computation capacity. Autodesk MentalRay commercial rendering engine The rendering input is an Autodesk MAYA (native) project file and a few parameters for rendering. The output will be the rendered images. The student (or teacher) can easily concat these jpeg images into a video. 04/18/13

4 Portlets: view Docking <print screen> layout
Autodock portal for the biology researchers. Researchers and students from the School of Life Sciences run molecular docking simulations on the infrastructure. In the picture as its partly shows, molecules, parameters, results. The most interesting point is the “Energy level” or “Autodock Score”. It gives a very specific interface for the researchers “end-users” for their work. 04/18/13

5 System infrastructure
dg-portal Dg-portal powered by WS- PGRADE Regular BOINC server with an additional service University Lab PCs Boinc-server What is the common this two portlet? Good question. The Backgound. The System and the infrastructure. As you can see, these are the steps and the system infrastructure behind our service. (Docking and rendering) 1. From the previous slides the “dg-portal” picture should be known (in the right top corner). This is the only interface, what is used by the end-user, as a biologyst or a computer graphics student. 2. The steps below are hidden from the user (fortunately). The next one, is the Regular Boinc-server, “BOINC boinc.berkeley.edu/‎ BOINC is an open-source software platform for computing using volunteered resources.”. This server manages the workers and the submitted jobs. 3. The lab comps. Are used by the students, and they are more reliable then the home PC owners. (In aspect of availability) 1800 pc around the Wesminster campuses, most of them are running Windows 7 (90%) a few labs using Macs, and a few linux clients are connected to the server. Comps have 2 core and 2-4 gigs of RAM. PC shut down automatically when there are no DG jobs. The Rendering portlet specificly uses the Mac labs computation resources. Boinc-clients 04/18/13

6 Portlets What is autodock? (It is designed to predict how small molecules, such as substrates or drug candidates, bind to a receptor of known 3D structure.. ) Docking portlet functions: Upload inputs, set parameters Validate Submit task (Wait) See the results Autodock Workflow The docking portlet. These functions are common with the rendering portlet, but the implementation is very diferent. Lets see the validation for ex. In case of the Autodock, we submit 1000 of input ligands, and after sort the results by the Energy level or “Autodock Score”, and give back the top X result. Eg. top 100 or top 5 . 04/18/13

7 Autodock binary (Boinc Clients)
Portlets: behind Autodock Workflow From the WS-PGRADE portal Generator bash script Autodock binary (Boinc Clients) Basically, the workflow is bunch of linux bash script, and a few configuration click in the portal. Sure, its from the developer’s point. The guys from the SZTAKI can make hundreds hours presentations from these configuration clicks, and what is running in the background. Generator prepares the input files and parameters, such as the autogrid mapping. Rendering: makes the chunks for the clients. As you want to render 2000 frames for the animation movie, and have 10 clients (comps), it separates it to 200 for each client. Collector bash script 04/18/13

8 Dataflow - behind Dg-portal BOINC server Lab PCs (workers) dg-portal
Boinc-clients 04/18/13

9 Portlets: code behind import hu.sztaki.lpds.pgportal.services.asm.ASMService; void submit(){ // pass the parameter String vina_best_result = getParameterFromWebForm(); // setup Best result number // as the collector job argument String best_content = vina_best_result; String selected_job = job_collector; //configure the workflow and submit it asm_service.setCommandLineArg(userId, selected_wf, selected_job, best_content); asm_service.submit(userId, selected_wf, "", ""); throwMessage("Task successfully submitted! ", 1); } What is the code behind the portlet? This simplified Java code demonstrates one method, which “submit” the job. Before execution, should configure the inputs and parameters as you can see at the line 10th. asm_service is a singleton, and have to use the userId and the workflowId as parameters. The submit function executes the workflow, the entry point is the “Generator”. 04/18/13

10 Portlets: code behind 2, ajax server side
void responseAjaxStatus(){ for (ASMWorkflow wfs : asm_service.getASMWorkflows(userId)) { String wf_id = wfs.getWorkflowName(); if ((Validate.wfInstanceValid(wf_id)) && (dockingTypeFromSelectedInstance(wf_id) == docking_type)) { String status_str = asm_service.getWorkflowStatus(userId, wf_id).getStatus(); msgJsonTasks += "{\"taskid\":\"" + wf_id + "\""; msgJsonTasks += ", \"status\":\"" + status_str + "\""; } byte[] msgString = msgJsonTasks.getBytes(); response.getPortletOutputStream().write(msgString); 04/18/13

11 Portlets: code behind 3, ajax client side, webpage
<script type=“text/javascript”> function sendStatusUpdate(urllife){ $("#ajaxUpdateTag").text("Status update from server ... "); $.ajax({ url: urllife, type: "post", data: "docking_type=${docking_type}&ajaxReq=wf_status", success: function(data){ $("#ajaxUpdateTag").text("Status updated "); var arr = JSON.parse(data); $.each(arr.tasks,function(){ // UPDATE TASKS STATUS ROWS if ($("#"+this.taskid +"_statustext").text().trim() != this.status) { $("#"+this.taskid +"_statustext").effect("highlight", {}, 3000); $("#"+this.taskid +"_statustext").text("* "+this.status); } }); ..}…} </script> 04/18/13

12 04/18/13

13 Questions?! Thank you for your attention. Peter Borsody UoW 04/18/13


Download ppt "University of Westminster Centre for Parallel Computing"

Similar presentations


Ads by Google