2010.04.09   domain specific cloud components for general availability in the research
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

2010.04.09 domain specific cloud components for general availability in the research

  • 942 views
Uploaded on

This work deals with availability of cloud computing to computational research labs. We will focus to the concept of availability. This concept may have two different interpretations, namely:

This work deals with availability of cloud computing to computational research labs. We will focus to the concept of availability. This concept may have two different interpretations, namely:
“Available” as an accessible resource, always, from everywhere
“Available” as the ability to consume a service (as a client or as the publisher)
This paper will focus on the second interpretation: a cloud service is “available” if it is easy for anyone in the academic community (and not) to consume the cloud. Indeed, cloud allows sharing “knowledge” in form of components or data to be “executed” in the cloud. The challenge here is to make possible for researchers, not necessarily expert in programming and computer science, to make available her/his knowledge in form of components and data tables.
The solution we propose is based on Domain Specific Languages (DSL), by which a researcher will express the components in her/his specific language, that will be user-friendly since it is directly related to the particular research field. In this framework, cloud components will be expressed in terms of a generic mathematical model rather than a software component. This vision is quite common in computing thanks to the availability of many tools that simplify the development of DSL such as dynamic languages like IronRuby or revolutionary data access with SQL Server Modeling.
The objective of this work is to present a model of a general “Domain Specific Cloud Component” (DSCC) that can be expressed, published and consumed by the research community using tools that allow an easy and direct implementation for the mathematical algorithms developed by the scientists. The general concept will be applied to specific examples by developing frameworks customized to share a specific “DSCC”.
Examples will be taken in the area of multiscale molecular modeling for the design of nanostructured polymer systems (nanotechnology) and the estimation of the environmental impact of a production process (sustainability).

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
942
On Slideshare
942
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
17
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Domain Specific Cloud Components for General Availability in the Research Marco Parenzan •Tenure - Web Service Programming Computer Engineering – University of Trieste •Researcher Methodologies and Tools MOSE Laboratory – University of Trieste Maurizio Fermeglia •Full Professor Chemical Engineering MOSE Laboratory – University of Trieste MOSE – University of Trieste 15 April, 2010 - slide 1
  • 2. MOSE: Molecular Simulation Engineering Vision  Multi – Scale Molecular Modeling will revolution the world of research and industrial production in the next years by strongly accelerating the development of new products. Mission  Material Sciences: thermo physical properties for materials, polymer technology and nanoscience/nanotechnology  Life Sciences: drug-receptor interactions, drug-design, QSAR, drug- S02 S08 delivery… Process simulation: process synthesis, design, modeling for chemical, S01 COL1 MAKUPB COL2 S05 H3 T1 H1 P1 S13Z MAKUPA  S12 F1 Q1 S07 S10 M1 S06 H2 biochemical, energy production H4 S14 S13 MOSE – University of Trieste 15 April, 2010 - slide 2
  • 3. Multiscale Molecular Modeling Characteristic Time years Engineering Engineering design design hours Simulazione Process minutes Simulation di processo FEM seconds Mesoscale modeling FEM (segments) microseconds Meccanica Molecular nanoseconds Mechanics molecolare (atoms) (atomi) picoseconds Quantum Meccanica Mechanics Quantistica femtoseconds (electrons) (elettroni) 1Å 1nm 1μm 1mm 1m Characteristic Length MOSE – University of Trieste 15 April, 2010 - slide 3
  • 4. Message Passing Multiscale Molecular Modeling Engineering design Process Simulation FEM Mesoscale modeling (segments) Molecular Mechanics (atoms) Quantum Meccanica Mechanics Quantistica (electrons) (elettroni) MOSE – University of Trieste 15 April, 2010 - slide 4
  • 5. Cloud-based Message Passing for Multiscale Molecular Modeling Engineering Engineering design Quantum design Mechanics Process (electrons) Simulation FEM Simulazione di processo FEM Mesoscale Meccanica modeling molecolare (segments) (atomi) MOSE – University of Trieste 15 April, 2010 - slide 5
  • 6. MOSE in the cloud… …no. Why?  Because it heavily depends on software (molecular simulation, process simulation) that are not on the Cloud Does MOSE needs the Cloud?  Yes. People need sharing the knowledge based on simulation and, generally, on computation Can MOSE access “alone” the Cloud? No, at the moment  The actors:  Chemists, Chemical Engineers, Materials Engineers, Biologists, Medical Doctors …  Just “Computer Science” classes in the first two years of Engineering Curriculum (some C/C++, no VB(A) or .NET, some Matlab)  But they need programs to solve their problems…  …and sometimes they try to write them! MOSE – University of Trieste 15 April, 2010 - slide 6
  • 7. Objectives of this Research Move MOSE to the Cloud! Cannot wait software companies Computer engineers can “simplify” write these codes  But she needs speaking with (non-computer) engineers about the details (Analysis, Specifications, “DOMAIN”) Why don‟t we enable (non-computer) scientists writing their own code? Simplifying (programming) tools to consume the Cloud What does “consume” mean?  Write Algorithms  Write Plug ins for existing apps  Write Custom Programs MOSE – University of Trieste 15 April, 2010 - slide 7
  • 8. Simplification development path We are „still @ C++‟ (some apps need C++ plug in/custom code) We already stepped into CLR world  Example our development in CAPE-OPEN (http://co-lan.org) The next step are  Dynamic Languages such as Python or Ruby  DSLs world for data (custom data texts) Win32 CLR DLR DSL C/C++ C#/VB Python/Ruby Custom DSL MOSE – University of Trieste 15 April, 2010 - slide 8
  • 9. Dynamic Languages on .NET IronPython IronRuby C# VB.NET Others… Dynamic Language Runtime Expression Trees Dynamic Dispatch Call Site Caching Object JavaScript Python Ruby COM binder binder binder binder binder MOSE – University of Trieste 15 April, 2010 - slide 9
  • 10. Why should we care then?  More languages, more options  DLR gives apps instant C# 4.0 scripting abilities Dynamic  C# has moved in that C# 3.0 Programming direction too! Language Integrated Query  LINQ C# 2.0  Lambda expressions Generics  Parallel extensions (C# C# 1.0 4.0) Managed Code  „dynamic‟ (C# 4.0) and „var‟ keywords MOSE – University of Trieste 15 April, 2010 - slide 10
  • 11. What is "Oslo"? THE PLATFORM FOR MODEL-DRIVEN APPLICATIONS “M” The language for authoring models & DSLs “Quadrant” The tool for interacting with models & DSLs Repository The database for storing & sharing models MOSE – University of Trieste 15 April, 2010 - slide 11
  • 12. "Oslo" Architecture “QUADRANT” [Your Visual DSL] [Your Textual DSL] EDITOR LANGUAGE FRAMEWORK FRAMEWORK Composition MSchema RUNTIMES Generic Viewers MGrammar Dataflow MGraph [Your Runtime] XML, Custom Formats, … “Dublin” ASP.NET ADO .NET WF WCF SQL/EDM REPOSITORY REPOSITORY SQL SERVER Windows REPOSITORY SQL SERVER SQL SERVER [Your Models] Other ISV Runtimes [Your Models] OTHER Base Models [Your Models] Base Models XML, Custom Formats, … TOOLS “M” Runtime .Net Models (VSTS, EXCEL, …) “M” Runtime Repository Models MOSE – University of Trieste 15 April, 2010 - slide 12
  • 13. Storage in Windows Azure GOAL: SCALABLE, DURABLE STORAGE Tables: simply Queues: serially structured data, Blobs: large, accessed messages accessed using unstructured or requests, allowing Windows Azure storage is an data (audio, ADO.NET Data web-roles and worker- application managed by the Services video, etc) roles to interact Fabric Controller Windows Azure applications can use native storage or SQL Azure Application state is kept in storage services, so worker roles can replicate as needed MOSE – University of Trieste 15 April, 2010 - slide 13
  • 14. Simplification steps 1. Write apps running on cloud 1. Windows Azure 2. (ASP.NET MVC2) Web Role for the front-end 3. Worker Role for background processing 4. Table, Blob and Queue for “unstructured”, but easy, storage 2. Use Dynamic Languages to do the processing 1. Simplified deployment 2. Simplified “code” model 3. Simplified type management (dynamic typing, no variable declaration) 4. Now fully integrated in .NET with DLR and IronPython and IronRuby 3. Input and Output as structured text 1. “M” (in “Oslo”, now SQL Server Modeling) gives us a generic schema language (more general that XSD) and more “readable” than xml 2. This gives structure and metadata to the Azure Storage data (as requested by Ed Lazowska in his yesterday wonderful keynote) MOSE – University of Trieste 15 April, 2010 - slide 14
  • 15. Domain Specific Cloud Components for General Availability in the Research Demo MOSE – University of Trieste 15 April, 2010 - slide 15
  • 16. The matrix was too simple? This is a two-dimensional matrix of three dimensional vectors Size of cube is: 100 nano meters MOSE – University of Trieste 15 April, 2010 - slide 16
  • 17. Domain Specific Cloud Components for General Availability in the Research Conclusions MOSE – University of Trieste 15 April, 2010 - slide 17
  • 18. The results 1. Write apps running on cloud 1. Windows Azure 2. (ASP.NET MVC2) Web Role for the front-end 3. Web Role for background processing 2. Use Dynamic Languages to do the processing 1. Simplified deployment 2. Simplified “code” model 3. Simplified type management (dynamic typing, no variable declaration) 4. Now fully integrated in .NET with DLR and IronPython and IronRuby 3. Input and Output as structured text 1. Oslo (now SQL Server Modeling) gives us a generic schema language (more general that Xsd) and more “readable” than xml 2. Structured text as data sources MOSE – University of Trieste 15 April, 2010 - slide 18
  • 19. Conclusions Why MOSE needs the cloud?  To build a platform to orchestrate the message passing in Multiscale Molecular Modeling activity  To empower our research team with a flexible scientific platform that drives efficiency, collaboration and innovation In the demo we have seen  The “creation” and the execution (invocation) of the single step of the process  The input and the output are the “messages” that walk through the scale The code:  Definition of a library of a generic cloud component  Usage of Dynamic Languages (IronPython)  A new opportunity in .NET development  More productive (PLLs, as told by Armando Fox yesterday)  More simpler for non programmers  Application of DSLs (Oslo) for the definition of simple input/output messages  More confident with scientific people  More simple than a graphical UI to implement  It gaves metadata/schema to flat files (as requested by Ed Lazowska in his yesterday wonderful keynote) What‟s next? MOSE – University of Trieste 15 April, 2010 - slide 19
  • 20. What is next? Continue with the project The definition of a process (an orchestration)  Did you saw the session from Paul Watson yesterday? (“Cloud Computing from chemical Property Prediction”) The users in the process  Collaboration in the process  Again, as Paul said, we agree on a structure like a “social science community”, a Web 2.0 application  Security, Confidentiality Verticalization on the domain  Remove all the nitty-gritty details that lowers the experience  Define custom component Languages MOSE – University of Trieste 15 April, 2010 - slide 20
  • 21. Simplification steps 1. Write apps running on cloud 1. Windows Azure 2. (ASP.NET MVC2) Web Role for the front-end 3. Worker Role for background processing 4. Table, Blob and Queue for “unstructured”, but easy, storage 2. Use Dynamic Languages to do the processing 1. Simplified deployment 2. Simplified “code” model 3. Simplified type management (dynamic typing, no variable declaration) 4. Now fully integrated in .NET with DLR and IronPython and IronRuby 3. Input and Output as structured text 1. “M” (in “Oslo”, now SQL Server Modeling) gives us a generic schema language (more general that XSD) and more “readable” than xml 2. This gives structure and metadata to the Azure Storage data 4. Write DSL MOSE – University of Trieste 15 April, 2010 - slide 21
  • 22. Writing a Custom DSL (Supposed)Needs of the “non- cloud component #naming part (entry point) Name = "test 0004" programmer” # declarative part  Libraries # sections like cobol  Integrated functionalities input i(label = "Input Vector")  No “include” data # static declaration  Data Access as Libraries m(name = "matrix01" # this is the "query" label = "multiplication matrix")  Connect  Command  Execute LINQ output o(label = "Output Vector")  Define Datasource (Metadata), no SQL schema # coding part # dynamic like python (and vb)  All-in-one # verbose like visual basic  One Component, one “file” (as much as code "this is the main" possible) # alterernative syntax of query from storage # calculated  Simplifing deployment m = lookup in Matrici for NomeMatrice Need of the programmer ### multiline comment ###  Not so (much) imperative, not so (much) assign 0 to r functional, not so (much) object oriented while r is less then m.rows do assign 0 to c  State is not so bad assign 0nm to a while c is less then m.cols do  Lambda are cool (no functions, all lambdas) #a = a + m(r,c) * i(c) increment a by m(r,c) * i(c) Escape to power (if DSL is “poor”) # python has no matrix, but jagged arrays increment c by 1  Backend of a full language, totally integrated end do assign a to o  DLR, (Iron)Python, (Iron)Ruby, (Iron)JS increment r by 1 end do (Javascript) and so on MOSE – University of Trieste 15 April, 2010 - slide 22
  • 23. Domain Specific Cloud Components for General Availability in the Research Q&A Marco Parenzan web presence Blog: http://blog.codeisvalue.com/ E-mail: marco.parenzan@libero.it Facebook: parenzan.marco Twitter: marco_parenzan Skype: marco.parenzan Live: marco.parenzan@live.it Slides: http://www.slideshare.com/marco.parenzan MOSE – University of Trieste 15 April, 2010 - slide 23
  • 24. MOSE: Molecular Simulation Engineering Department of Materials and Natural Resources (DMRN) University of Trieste Piazzale Europa 1, 34127 Trieste (Italy) http://www.mose.units.it/ Maurizio Fermeglia maurizio.fermeglia@dicamp.units.it MOSE – University of Trieste 15 April, 2010 - slide 24