1 / 17

Porting Applications to the EDGeS Infrastructure

Porting Applications to the EDGeS Infrastructure. A comparison of the available methods, APIs, and technologies. Attila Csaba Marosi MTA SZTAKI. Porting Applications to BOINC. Porting applications to BOINC is not a straightforward process

albin
Télécharger la présentation

Porting Applications to the EDGeS Infrastructure

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Porting Applications to the EDGeS Infrastructure A comparison of the available methods, APIs, and technologies Attila Csaba Marosi MTA SZTAKI The EDGeS project receives Community research funding

  2. Porting Applications to BOINC • Porting applications to BOINC is not a straightforward process • The infrastructure requires the implementation of various components (work unit generator, assimilator, worker application, etc.) • Developers can find a wide variety of APIs and methods to port their applications • It is not easy to select the best one for our application • This presentation gives an overview of the available methods, APIs, and technologies Porting Applications to a BOINC Infrastructure

  3. Application Types • There are two types of applications: • Applications whose source code is available and can be modified easily • Legacy applications that cannot be modified (e.g. the source code is not available) or it is not advisable to modify them Porting Applications to a BOINC Infrastructure

  4. Available Methods, APIs, and Technologies • Server side • BOINC API • DC-API • gUSE • Client side • BOINC API • DC-API • Boinc Wrapper technology • GenWrapper technology Porting Applications to a BOINC Infrastructure

  5. BOINC API • The original API, can only be used with BOINC • A set of C and C++ functions • Rich feature set at the expense of complexity • 4 separate applications (WU generator, validator, assimilator, worker) • Complex porting process Porting Applications to a BOINC Infrastructure

  6. BOINC API Functionality WU Generator: -work unit generation, submission - input and output file handling Validator: - validator frameworks (simple, low-level) Assimilator: - handler function linked with a special program Grid System Initialisation Input and output file identification I/O wrappers Checkpointing Progress, credit reporting Critical sections Atomic file update Time handlers Graphics API (screen savers, icons) Other APIs (status, diagnostics, etc.) BOINC API BOINC API Client Application Client Application Porting Applications to a BOINC Infrastructure

  7. DC-API • Distributed Computing Application Programming Interface • Allows easy implementation and deployment of distributed applications on multiple grid environments • An API that hides the details of BOINC • The DC-API is designed to be simple and easy to use • Supports a master-worker programming model • Work units are sequential applications Porting Applications to a BOINC Infrastructure

  8. Common features: Configuration, logging, messaging DC-API Functionality Initialisation Work unit generation Input and output file handling Work unit submission Event processing (e.g. results) Result assimilation Work unit deletion Grid System Initialisation Input and output file identification Event processing (e.g. checkpointing) Progress reporting DC-API DC-API Client Application Client Application Porting Applications to a BOINC Infrastructure

  9. BOINC Wrapper Technology • Can be used to port legacy applications easily • No need the change the original application • The wrapper runs legacy applications as sub-processes • The wrapper plays the role of the BOINC client application • Handles all communication with the core client (fraction, CPU time reporting, suspend, resume, abort, etc.) • Tasks: • Compile the Wrapper • Create a Job description file (XML) Porting Applications to a BOINC Infrastructure

  10. BOINC Wrapper Structure Without the Wrapper With the Wrapper BOINC core client BOINC core client Executes the legacy application(s) in a specific order BOINC application compiled with the BOINC libraries Wrapper Legacy Application Porting Applications to a BOINC Infrastructure

  11. GenWrapper technology • Generic wrapper interpreter based on GitBox • Runs legacy applications without BOINCification • Makes the BOINC API / DC-API available in POSIX shell scripting • A shell interpreter is started instead of the real application that executes an application script • The script • realizes BOINCification through script commands • may run legacy applications in any way • may perform any preparation on input-, output files, environment, etc. • may do whatever you can do in a script Porting Applications to a BOINC Infrastructure

  12. GenWrapper Structure 1. Downloads 2. Downloads Acts as the BOINC client application BOINC core client Can do almost anything that a shell script can (e.g. can start the legacy application) Application 4. Launches GitBox Launcher 3. Extracts Work unit 7. Produces Application script A ZIP file (optional) 5. Executes Input files Profile script Legacy application Output files GenWrapper binaries 6. Gets executed by GitBox Porting Applications to a BOINC Infrastructure

  13. gUSE & WS-PGRADE • gUSE (grid User Support Environment) • is a grid virtualization environment • exposes the grid as a workflow • enables the execution of workflows simultaneously in many grids no matter what their middleware is • WS-PGRADE is the user interface to support • editing, configuring, publishing workflows (as grid applications) • Workflows can be built from four types of jobs • Normal, sequential job • Generator • PS (Parameter Sweep) • Collector • Jobs can be submitted to a BOINC DG Porting Applications to a BOINC Infrastructure

  14. GEN Grid job generates input parameter space COLL Collector grid job evaluates the results of the simulation gUSE Parameter Study Workflow This could be any workflow SEQ SEQ SEQ SEQ Parameter sweep grid jobs (can run on a DG for example) Porting Applications to a BOINC Infrastructure

  15. Comparison of the methods, APIs, and technologies (server side) Porting Applications to a BOINC Infrastructure

  16. Comparison of the methods, APIs, and technologies (client side) Porting Applications to a BOINC Infrastructure

  17. Resources • BOINC API (BOINC Wiki): • http://boinc.berkeley.edu/trac/wiki/ProjectMain • DC-API: • http://desktopgrid.hu • gUSE: • http://www.guse.hu • BOINC Wrapper: • http://boinc.berkeley.edu/trac/wiki/WrapperApp • GenWrapper: • http://sanjuro.lpds.sztaki.hu/genwrapper Porting Applications to a BOINC Infrastructure

More Related