SlideShare uma empresa Scribd logo
1 de 19
Baixar para ler offline
A Model-Driven Approach to Job/Task
 Composition in Cluster Computing

   (Slide background intentionally left blank.)

         George K. Thiruvathukal (presenter)
 Neeraj Mehta,Yogesh Kanitkar, and Konstantin Läufer
               Loyola University Chicago
Computer Science / Emerging Technologies Laboratory
                 http://www.etl.luc.edu
       http://code.google.com/p/neighborhood
An “Outsider’s” View of Grid/
           Cluster/HPC Research
     quot;My personal reservation is that most of the Grid [and cluster]
  researchers are operating at the level of threads, sockets, and files. I
 believe the Grid will be a federation of applications and data servers –
 the DataGrid in the taxonomy above rather than a number cruncher
 ComputerGrid. This data-centric view means that files (and FTP) are
the wrong metaphor. Classes, methods, and objects (encapsulated data)
                         are the right metaphor.quot;

            Jim Gray, Microsoft and Grid Computing, 2002
             http://research.microsoft.com/~Gray/papers/
                 Microsoft_and_Grid_Computing.doc
Outline
•                            •
    About Model-Driven           XML Model Interchange
    Development                  (XMI)

•                            •
    CN in a Nutshell             Model Transformation
                                 (XMI to CNX)
•   UML Overview
                             •   Tagged Values
•   UML Activity Diagrams
                             •
    for Task Composition         Conclusions

•                            •
    CN/XML Job Descriptors       Future Plans
Model-Driven
              Development
•   Approach: Express computational tasks in the form of a high-
    level domain model and generate executable code from model
    automatically

•   Goals/motivation:

    •   Much easier to adapt high-level model to changing
        requirements.

    •   Hide low-level details of mapping tasks to computational
        resources and inter-task communication.

    •   Independence of specific cluster configuration.
CN in a Nutshell
•   CN Server: CN Servers run on the various nodes of the cluster.

•   CN API: Client programs use the CN API to execute and exploit the
    various resources of the cluster.

•   CN Intelligent Object Editor: The user could specify the details required to
    generate the Client program using this graphical use interface.

•   CNX: CNX (XML) is a compositional language that captures the details of
    the client program.

•   CNX2Java: CNX2Java is an XSLT document that translates CNX to
    compilable JAVA code.

•   XMI2CNX: XMI2CNX is an XSLT document that translates UML model in
    XMI format to CNX.
Why UML?
• Standard modeling notation
• Wide tool support (e.g. Eclipse, NetBeans,
  Poseidon, Rational, and others)
• Tool interoperability through XMI (XML
  Metadata Interchange)
• XMI itself is transformable to other formats
  via XSLT or ad hoc transformers.
UML Diagrams
•   UML supports many dynamic diagrams (beyond sequence
    diagrams, the most common case)

•   An activity diagram is a visual representation of an activity
    graph.

•   An activity graph is a state machine whose states represent
    actions or subactivities and where transitions out of states
    are triggered by the completion of the corresponding actions
    or subactivities.

•   Activity diagrams are thus intended for modeling computations
    whose control flow is driven by internal processing.
Activity Diagrams and
 Parallel Computing
•   In parallel computing, a computational job typically
    consists of one or more concurrent tasks whose
    dependencies form a directed acyclic graph

•   In CN, a client is composed from one or more
    such tasks. While the details of jobs and tasks are
    implemented modularly in the target programming
    language, the jobs and tasks need to be “glued”
    together outside of the implementation itself.
CN/XML Job
Descriptors (Nutshell)
•   CN/XNL (CNX) is a job/task composition language inspired by CSP.

•   Task attributes:

    •   name: user-friendly name

    •   jar/archive: where to find the code (most CN jobs are Java, so you can pack the job into
        a .jar file)

    •   class: entry point

    •   dependencies: predecessors

•   Task requirements:

    •   memory: memory needed to run Task

    •   run model: e.g. create new VM or run threads within current VM

•   Task parameters: Properties (key/value pairs)

•   Tasks may be composed recursively using parallel or sequential CSP-like constructs. Task
    dependencies (and IDs) generated automatically.
XML Metadata
               Interchange
•   XMI is an XML based format for persisting a UML model for possible exchange
    among differnet UML tools.

•   CNX is a rich descriptor for CN Jobs and Tasks (transformable to XMI)

•   UML's XML Model Interchange is a bare bones descriptor framework. Annotations
    can be made using tagged values.

•   <UML:ActionState>: Each CN task is represented as an ActionState.

•   <UML:StateVertex.outgoing>: The tasks to be notified when a particular task has
    completed.

•   <UML:StateVertex.incoming>: The tasks that must be completed before this task can
    run.

•   Jobs and tasks are nameless in CN. In XMI, tasks are translated into nodes, which
    have document-wide unique identifiers.
Tagged Values
•   Tagged values allow metadata to be included in the UML activity diagram (model or
    domain-specific information)

•   Example of CN-specific metadata included as UML “tagged values”:

    •   jar: tctask.jar

    •   class: org.jhpc.cn2.trnsclsrtask.TCTask

    •   memory: 1000

    •   runmodel: RUN AS THREAD IN TM

    •   ptype0: java.lang.Integer

    •   pvalue0: 2
Activity Diagram for Guiding Example using Explicit
         Concurrency (Static Composition)
UML for Guiding Example
(Dynamic Configuration Based on Runtime Parameter)
Model Transformation
•   The UML model for the CN computation is
    created in the form of an activity diagram

•   The UML model is exported as an XMI document

•   The XMI document is transformed, using XSL
    Transformations to a CNX client descriptor

•   The CNX client descriptor is transformed, using
    XSL Transformations, to a client program in the
    target language (currently Java)
Transformation Pipeline
XMI Fragment (from UML Activity Diagram)
  ! UML:ActionState xmi.id = 'a89' name = 'TCTask2'
  <
  ! isSpecification = 'false' isDynamic = 'false'>
  !    <UML:TaggedValue xmi.id = 'a91' isSpecification =   'false'
  !      dataValue = '1000'>
  !      <UML:TaggedValue.type>
  !        <UML:TagDefinition xmi.idref = 'a13'/>
  !      </UML:TaggedValue.type>
  !    </UML:TaggedValue>
  !    <UML:TaggedValue xmi.id = 'a92' isSpecification =   'false'
  !      dataValue = 'RUN_AS_THREAD_IN_TM'>
  !      <UML:TaggedValue.type>
  !        <UML:TagDefinition xmi.idref = 'a16'/>
  !      </UML:TaggedValue.type>
  !    </UML:TaggedValue>
  !    <UML:TaggedValue xmi.id = 'a93' isSpecification =   'false'
  !      dataValue = 'tctask.jar'>
  !      <UML:TaggedValue.type>
  !        <UML:TagDefinition xmi.idref = 'a7'/>
  !      </UML:TaggedValue.type>
  !    </UML:TaggedValue>
  !    <UML:TaggedValue xmi.id = 'a94' isSpecification =   'false'
  !      dataValue = 'org.jhpc.cn2.trnsclsrtask.TCTask'>
  !      <UML:TaggedValue.type>
  !        <UML:TagDefinition xmi.idref = 'a10'/>
  !      </UML:TaggedValue.type>
  !    </UML:TaggedValue>
  ! </UML:ModelElement.taggedValue>
  ! <UML:StateVertex.outgoing>
  !    <UML:Transition xmi.idref = 'a95'/>
  !    <UML:Transition xmi.idref = 'a96'/>
  ! </UML:StateVertex.outgoing>
  ! <UML:StateVertex.incoming>
  !    <UML:Transition xmi.idref = 'a78'/>
  ! </UML:StateVertex.incoming>
  ! /UML:ActionState>
  <
  !
CN/XML Descriptor Generated from XMI
        (Activity Diagram)
 ! ?xml version=quot;1.0quot;?>
 <
 ! cn2>
 <
 ! <client class=quot;TransCloserquot; log=quot;CN_Client1047909210005.logquot;
 port=quot;5666quot;>
 ! <job>
 ! <task name=quot;tctask1quot; jar=quot;tasksplit.jarquot;
 class=quot;org.jhpc.cn2.transcloser.TaskSplitquot; depends=quot;quot;>
 !    <task-req>
 !      <memory>1000</memory>
 !      <runmodel>RUN_AS_THREAD_IN_TM</runmodel>
 !    </task-req>
 !    <param type=quot;Stringquot;>matrix.txt</param>
 ! </task>
 ! <task name=quot;tctask2quot; jar=quot;tctask.jarquot;
 class=quot;org.jhpc.cn2.trnsclsrtask.TCTaskquot; depends=quot;tctask1quot;>
 !    <param type=quot;Integerquot;>1</param>
 !    <task-req>
 !      <memory>1000</memory>
 !      <runmodel>RUN_AS_THREAD_IN_TM</runmodel>
 !    </task-req>
 ! </task>
 ! <task name=quot;tctask3quot; jar=quot;tctask.jarquot;
 class=quot;org.jhpc.cn2.trnsclsrtask.TCTaskquot; depends=quot;tctask1quot;>
 !    <param type=quot;Integerquot;>2</param>
 !    <task-req>
 !      <memory>1000</memory>
 !      <runmodel>RUN_AS_THREAD_IN_TM</runmodel>
 !    </task-req>
 !    <param type=quot;Stringquot;>HELLO_WORLD</param>
 ! </task>
 ! <task name=quot;tctask4quot; jar=quot;tctask.jarquot;
 class=quot;org.jhpc.cn2.trnsclsrtask.TCTaskquot; depends=quot;tctask1quot;>
 !    <param type=quot;Integerquot;>3</param>
Conclusions
•   This work is at a preliminary stage. CN has a mature implementation but is still
    not a prevalent approach.

•   We've been successful to go from UML to CN's XML descriptors, to running
    programs.

•   Not all parallel programs have a simple decomposition. (Breaking news!)

•   Other UML functionality will need to be introduced to model complex
    (internal) task structure.

•   CN has much in common with workflow systems but is not aimed directly at
    supporting SOA. CN computations, of course, can be exposed as proper
    services.

•   That said, UML is aimed at large-scale software engineering. A component
    modeled with UML can be embedded in a larger UML diagram and/or stand on
    its own.
Futures
•   CN is an active and ongoing research effort.

•   Explore other aspects of UML, especially for modeling
    internal task behavior.

•   Integrate CN (a P2P clustering framework) with Hydra (a
    P2P storage framework).

•   Replace CN task messaging/signaling with Trull, an event-
    based framework for concurrent (and distributed) systems,
    led by Konstantin Läufer (also at Loyola University
    Chicago).

•   Redo Intelligent Object Editor (not covered here) using
    Eclipse or use Eclipse UML plugin.

•   Extend work for other grid/clustering projects.

Mais conteúdo relacionado

Mais procurados

Bt0087 wml and wap programing2
Bt0087 wml and wap programing2Bt0087 wml and wap programing2
Bt0087 wml and wap programing2Techglyphs
 
20. Magento Austria meetup - EAV Principles
20. Magento Austria meetup - EAV Principles20. Magento Austria meetup - EAV Principles
20. Magento Austria meetup - EAV Principlesmohammedhsalem
 
SQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJSQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJDharita Chokshi
 
jQuery - Chapter 3 - Effects
jQuery - Chapter 3 - Effects  jQuery - Chapter 3 - Effects
jQuery - Chapter 3 - Effects WebStackAcademy
 
Angular - Chapter 4 - Data and Event Handling
 Angular - Chapter 4 - Data and Event Handling Angular - Chapter 4 - Data and Event Handling
Angular - Chapter 4 - Data and Event HandlingWebStackAcademy
 
2 jdbc drivers
2 jdbc drivers2 jdbc drivers
2 jdbc driversmyrajendra
 

Mais procurados (13)

Bt0087 wml and wap programing2
Bt0087 wml and wap programing2Bt0087 wml and wap programing2
Bt0087 wml and wap programing2
 
Jdbc sasidhar
Jdbc  sasidharJdbc  sasidhar
Jdbc sasidhar
 
20. Magento Austria meetup - EAV Principles
20. Magento Austria meetup - EAV Principles20. Magento Austria meetup - EAV Principles
20. Magento Austria meetup - EAV Principles
 
SQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJSQL, Embedded SQL, Dynamic SQL and SQLJ
SQL, Embedded SQL, Dynamic SQL and SQLJ
 
4. plsql 1
4. plsql 14. plsql 1
4. plsql 1
 
Dvm
DvmDvm
Dvm
 
jQuery - Chapter 3 - Effects
jQuery - Chapter 3 - Effects  jQuery - Chapter 3 - Effects
jQuery - Chapter 3 - Effects
 
Javascript
JavascriptJavascript
Javascript
 
Jdbc
JdbcJdbc
Jdbc
 
4 jdbc step1
4 jdbc step14 jdbc step1
4 jdbc step1
 
Angular - Chapter 4 - Data and Event Handling
 Angular - Chapter 4 - Data and Event Handling Angular - Chapter 4 - Data and Event Handling
Angular - Chapter 4 - Data and Event Handling
 
Database Access With JDBC
Database Access With JDBCDatabase Access With JDBC
Database Access With JDBC
 
2 jdbc drivers
2 jdbc drivers2 jdbc drivers
2 jdbc drivers
 

Destaque

Carta Viejo Pascuero
Carta Viejo PascueroCarta Viejo Pascuero
Carta Viejo Pascueroshaggy
 
3avanzado La IrrupcióN De Los Blogs
3avanzado La IrrupcióN De Los Blogs3avanzado La IrrupcióN De Los Blogs
3avanzado La IrrupcióN De Los BlogsJaime Peña
 
Language Learners & Computer Games
Language Learners & Computer GamesLanguage Learners & Computer Games
Language Learners & Computer GamesKyle Mawer
 
Djordj Garlin
Djordj GarlinDjordj Garlin
Djordj GarlinVili 48
 
ApresentaçãO Casos ClíNicos
ApresentaçãO Casos ClíNicosApresentaçãO Casos ClíNicos
ApresentaçãO Casos ClíNicosadrianacarrazoni
 
Democracy Now 23.06.07
Democracy Now 23.06.07Democracy Now 23.06.07
Democracy Now 23.06.07konthaiuk
 
FotóGrafos
FotóGrafosFotóGrafos
FotóGrafosrivas
 
Customised Search With Google
Customised Search With GoogleCustomised Search With Google
Customised Search With GoogleDave Briggs
 
Como Utilizar Seu E-Mail
Como Utilizar Seu E-MailComo Utilizar Seu E-Mail
Como Utilizar Seu E-MailEnoch Filho
 
Etwinning 12706 8799
Etwinning 12706 8799Etwinning 12706 8799
Etwinning 12706 8799Laura Sanfil
 
Eating Tactile Book
Eating Tactile BookEating Tactile Book
Eating Tactile BookKate Ahern
 
Trabajo De Internet
Trabajo De InternetTrabajo De Internet
Trabajo De InternetPedROCCC
 
Power Point Olla
Power Point OllaPower Point Olla
Power Point Ollamarcusmedia
 

Destaque (20)

Eradigital
EradigitalEradigital
Eradigital
 
Carta Viejo Pascuero
Carta Viejo PascueroCarta Viejo Pascuero
Carta Viejo Pascuero
 
3avanzado La IrrupcióN De Los Blogs
3avanzado La IrrupcióN De Los Blogs3avanzado La IrrupcióN De Los Blogs
3avanzado La IrrupcióN De Los Blogs
 
的場ひろし
的場ひろし的場ひろし
的場ひろし
 
Huelga SUTEP
Huelga SUTEPHuelga SUTEP
Huelga SUTEP
 
Language Learners & Computer Games
Language Learners & Computer GamesLanguage Learners & Computer Games
Language Learners & Computer Games
 
Djordj Garlin
Djordj GarlinDjordj Garlin
Djordj Garlin
 
Pfp Org Y Fun
Pfp Org Y FunPfp Org Y Fun
Pfp Org Y Fun
 
ApresentaçãO Casos ClíNicos
ApresentaçãO Casos ClíNicosApresentaçãO Casos ClíNicos
ApresentaçãO Casos ClíNicos
 
Democracy Now 23.06.07
Democracy Now 23.06.07Democracy Now 23.06.07
Democracy Now 23.06.07
 
FotóGrafos
FotóGrafosFotóGrafos
FotóGrafos
 
Customised Search With Google
Customised Search With GoogleCustomised Search With Google
Customised Search With Google
 
Como Utilizar Seu E-Mail
Como Utilizar Seu E-MailComo Utilizar Seu E-Mail
Como Utilizar Seu E-Mail
 
Holden
HoldenHolden
Holden
 
Etwinning 12706 8799
Etwinning 12706 8799Etwinning 12706 8799
Etwinning 12706 8799
 
Eating Tactile Book
Eating Tactile BookEating Tactile Book
Eating Tactile Book
 
Trabajo De Internet
Trabajo De InternetTrabajo De Internet
Trabajo De Internet
 
Power Point Olla
Power Point OllaPower Point Olla
Power Point Olla
 
La Busqueda
La BusquedaLa Busqueda
La Busqueda
 
Elcorazondelhombre
ElcorazondelhombreElcorazondelhombre
Elcorazondelhombre
 

Semelhante a CN/UML at IPDPS JavaPDC 2007

Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesCHOOSE
 
Dax Declarative Api For Xml
Dax   Declarative Api For XmlDax   Declarative Api For Xml
Dax Declarative Api For XmlLars Trieloff
 
Code That Writes Code : Automatic Programming for NHibernate
Code That Writes Code : Automatic Programming for NHibernateCode That Writes Code : Automatic Programming for NHibernate
Code That Writes Code : Automatic Programming for NHibernateDeepak Sahu
 
e-suap - client technologies- english version
e-suap - client technologies- english versione-suap - client technologies- english version
e-suap - client technologies- english versionSabino Labarile
 
Code Generation as a Service
Code Generation as a ServiceCode Generation as a Service
Code Generation as a ServiceDimitris Kolovos
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLelliando dias
 
MCA-202-W4-L1.pptx
MCA-202-W4-L1.pptxMCA-202-W4-L1.pptx
MCA-202-W4-L1.pptxmanju451965
 
Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...NECST Lab @ Politecnico di Milano
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaGoDataDriven
 
Mazda Use of Third Generation Xml Tools
Mazda Use of Third Generation Xml ToolsMazda Use of Third Generation Xml Tools
Mazda Use of Third Generation Xml ToolsCardinaleWay Mazda
 
Rejunevating software reengineering processes
Rejunevating software reengineering processesRejunevating software reengineering processes
Rejunevating software reengineering processesmanishthaper
 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Codelbergmans
 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codelbergmans
 
Angular 2 for Java Developers
Angular 2 for Java DevelopersAngular 2 for Java Developers
Angular 2 for Java DevelopersYakov Fain
 
Overview of atg framework
Overview of atg frameworkOverview of atg framework
Overview of atg frameworkYousuf Roushan
 
No SQL, No problem - using MongoDB in Ruby
No SQL, No problem - using MongoDB in RubyNo SQL, No problem - using MongoDB in Ruby
No SQL, No problem - using MongoDB in Rubysbeam
 
Memento Pattern Implementation
Memento Pattern ImplementationMemento Pattern Implementation
Memento Pattern ImplementationSteve Widom
 
Best Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IVBest Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IVICS
 

Semelhante a CN/UML at IPDPS JavaPDC 2007 (20)

MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of TonguesChoose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
Choose'10: Ralf Laemmel - Dealing Confortably with the Confusion of Tongues
 
Dax Declarative Api For Xml
Dax   Declarative Api For XmlDax   Declarative Api For Xml
Dax Declarative Api For Xml
 
Code That Writes Code : Automatic Programming for NHibernate
Code That Writes Code : Automatic Programming for NHibernateCode That Writes Code : Automatic Programming for NHibernate
Code That Writes Code : Automatic Programming for NHibernate
 
e-suap - client technologies- english version
e-suap - client technologies- english versione-suap - client technologies- english version
e-suap - client technologies- english version
 
Code Generation as a Service
Code Generation as a ServiceCode Generation as a Service
Code Generation as a Service
 
Model Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UMLModel Driven Architecture and eXecutable UML
Model Driven Architecture and eXecutable UML
 
MCA-202-W4-L1.pptx
MCA-202-W4-L1.pptxMCA-202-W4-L1.pptx
MCA-202-W4-L1.pptx
 
Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...Pretzel: optimized Machine Learning framework for low-latency and high throug...
Pretzel: optimized Machine Learning framework for low-latency and high throug...
 
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei ZahariaDeep learning and streaming in Apache Spark 2.2 by Matei Zaharia
Deep learning and streaming in Apache Spark 2.2 by Matei Zaharia
 
Mazda Use of Third Generation Xml Tools
Mazda Use of Third Generation Xml ToolsMazda Use of Third Generation Xml Tools
Mazda Use of Third Generation Xml Tools
 
Rejunevating software reengineering processes
Rejunevating software reengineering processesRejunevating software reengineering processes
Rejunevating software reengineering processes
 
Close encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet CodeClose encounters in MDD: when Models meet Code
Close encounters in MDD: when Models meet Code
 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet code
 
Angular 2 for Java Developers
Angular 2 for Java DevelopersAngular 2 for Java Developers
Angular 2 for Java Developers
 
Overview of atg framework
Overview of atg frameworkOverview of atg framework
Overview of atg framework
 
No SQL, No problem - using MongoDB in Ruby
No SQL, No problem - using MongoDB in RubyNo SQL, No problem - using MongoDB in Ruby
No SQL, No problem - using MongoDB in Ruby
 
Memento Pattern Implementation
Memento Pattern ImplementationMemento Pattern Implementation
Memento Pattern Implementation
 
Best Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IVBest Practices in Qt Quick/QML - Part IV
Best Practices in Qt Quick/QML - Part IV
 
D3ML Session
D3ML SessionD3ML Session
D3ML Session
 

Último

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?Antenna Manufacturer Coco
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfEnterprise Knowledge
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxKatpro Technologies
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking MenDelhi Call girls
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityPrincipled Technologies
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Enterprise Knowledge
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationRadu Cotescu
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 

Último (20)

A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?What Are The Drone Anti-jamming Systems Technology?
What Are The Drone Anti-jamming Systems Technology?
 
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdfThe Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
The Role of Taxonomy and Ontology in Semantic Layers - Heather Hedden.pdf
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptxFactors to Consider When Choosing Accounts Payable Services Providers.pptx
Factors to Consider When Choosing Accounts Payable Services Providers.pptx
 
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men08448380779 Call Girls In Greater Kailash - I Women Seeking Men
08448380779 Call Girls In Greater Kailash - I Women Seeking Men
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
Boost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivityBoost PC performance: How more available memory can improve productivity
Boost PC performance: How more available memory can improve productivity
 
Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...Driving Behavioral Change for Information Management through Data-Driven Gree...
Driving Behavioral Change for Information Management through Data-Driven Gree...
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
Scaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organizationScaling API-first – The story of a global engineering organization
Scaling API-first – The story of a global engineering organization
 
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law DevelopmentsTrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
TrustArc Webinar - Stay Ahead of US State Data Privacy Law Developments
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 

CN/UML at IPDPS JavaPDC 2007

  • 1. A Model-Driven Approach to Job/Task Composition in Cluster Computing (Slide background intentionally left blank.) George K. Thiruvathukal (presenter) Neeraj Mehta,Yogesh Kanitkar, and Konstantin Läufer Loyola University Chicago Computer Science / Emerging Technologies Laboratory http://www.etl.luc.edu http://code.google.com/p/neighborhood
  • 2. An “Outsider’s” View of Grid/ Cluster/HPC Research quot;My personal reservation is that most of the Grid [and cluster] researchers are operating at the level of threads, sockets, and files. I believe the Grid will be a federation of applications and data servers – the DataGrid in the taxonomy above rather than a number cruncher ComputerGrid. This data-centric view means that files (and FTP) are the wrong metaphor. Classes, methods, and objects (encapsulated data) are the right metaphor.quot; Jim Gray, Microsoft and Grid Computing, 2002 http://research.microsoft.com/~Gray/papers/ Microsoft_and_Grid_Computing.doc
  • 3. Outline • • About Model-Driven XML Model Interchange Development (XMI) • • CN in a Nutshell Model Transformation (XMI to CNX) • UML Overview • Tagged Values • UML Activity Diagrams • for Task Composition Conclusions • • CN/XML Job Descriptors Future Plans
  • 4. Model-Driven Development • Approach: Express computational tasks in the form of a high- level domain model and generate executable code from model automatically • Goals/motivation: • Much easier to adapt high-level model to changing requirements. • Hide low-level details of mapping tasks to computational resources and inter-task communication. • Independence of specific cluster configuration.
  • 5. CN in a Nutshell • CN Server: CN Servers run on the various nodes of the cluster. • CN API: Client programs use the CN API to execute and exploit the various resources of the cluster. • CN Intelligent Object Editor: The user could specify the details required to generate the Client program using this graphical use interface. • CNX: CNX (XML) is a compositional language that captures the details of the client program. • CNX2Java: CNX2Java is an XSLT document that translates CNX to compilable JAVA code. • XMI2CNX: XMI2CNX is an XSLT document that translates UML model in XMI format to CNX.
  • 6. Why UML? • Standard modeling notation • Wide tool support (e.g. Eclipse, NetBeans, Poseidon, Rational, and others) • Tool interoperability through XMI (XML Metadata Interchange) • XMI itself is transformable to other formats via XSLT or ad hoc transformers.
  • 7. UML Diagrams • UML supports many dynamic diagrams (beyond sequence diagrams, the most common case) • An activity diagram is a visual representation of an activity graph. • An activity graph is a state machine whose states represent actions or subactivities and where transitions out of states are triggered by the completion of the corresponding actions or subactivities. • Activity diagrams are thus intended for modeling computations whose control flow is driven by internal processing.
  • 8. Activity Diagrams and Parallel Computing • In parallel computing, a computational job typically consists of one or more concurrent tasks whose dependencies form a directed acyclic graph • In CN, a client is composed from one or more such tasks. While the details of jobs and tasks are implemented modularly in the target programming language, the jobs and tasks need to be “glued” together outside of the implementation itself.
  • 9. CN/XML Job Descriptors (Nutshell) • CN/XNL (CNX) is a job/task composition language inspired by CSP. • Task attributes: • name: user-friendly name • jar/archive: where to find the code (most CN jobs are Java, so you can pack the job into a .jar file) • class: entry point • dependencies: predecessors • Task requirements: • memory: memory needed to run Task • run model: e.g. create new VM or run threads within current VM • Task parameters: Properties (key/value pairs) • Tasks may be composed recursively using parallel or sequential CSP-like constructs. Task dependencies (and IDs) generated automatically.
  • 10. XML Metadata Interchange • XMI is an XML based format for persisting a UML model for possible exchange among differnet UML tools. • CNX is a rich descriptor for CN Jobs and Tasks (transformable to XMI) • UML's XML Model Interchange is a bare bones descriptor framework. Annotations can be made using tagged values. • <UML:ActionState>: Each CN task is represented as an ActionState. • <UML:StateVertex.outgoing>: The tasks to be notified when a particular task has completed. • <UML:StateVertex.incoming>: The tasks that must be completed before this task can run. • Jobs and tasks are nameless in CN. In XMI, tasks are translated into nodes, which have document-wide unique identifiers.
  • 11. Tagged Values • Tagged values allow metadata to be included in the UML activity diagram (model or domain-specific information) • Example of CN-specific metadata included as UML “tagged values”: • jar: tctask.jar • class: org.jhpc.cn2.trnsclsrtask.TCTask • memory: 1000 • runmodel: RUN AS THREAD IN TM • ptype0: java.lang.Integer • pvalue0: 2
  • 12. Activity Diagram for Guiding Example using Explicit Concurrency (Static Composition)
  • 13. UML for Guiding Example (Dynamic Configuration Based on Runtime Parameter)
  • 14. Model Transformation • The UML model for the CN computation is created in the form of an activity diagram • The UML model is exported as an XMI document • The XMI document is transformed, using XSL Transformations to a CNX client descriptor • The CNX client descriptor is transformed, using XSL Transformations, to a client program in the target language (currently Java)
  • 16. XMI Fragment (from UML Activity Diagram) ! UML:ActionState xmi.id = 'a89' name = 'TCTask2' < ! isSpecification = 'false' isDynamic = 'false'> ! <UML:TaggedValue xmi.id = 'a91' isSpecification = 'false' ! dataValue = '1000'> ! <UML:TaggedValue.type> ! <UML:TagDefinition xmi.idref = 'a13'/> ! </UML:TaggedValue.type> ! </UML:TaggedValue> ! <UML:TaggedValue xmi.id = 'a92' isSpecification = 'false' ! dataValue = 'RUN_AS_THREAD_IN_TM'> ! <UML:TaggedValue.type> ! <UML:TagDefinition xmi.idref = 'a16'/> ! </UML:TaggedValue.type> ! </UML:TaggedValue> ! <UML:TaggedValue xmi.id = 'a93' isSpecification = 'false' ! dataValue = 'tctask.jar'> ! <UML:TaggedValue.type> ! <UML:TagDefinition xmi.idref = 'a7'/> ! </UML:TaggedValue.type> ! </UML:TaggedValue> ! <UML:TaggedValue xmi.id = 'a94' isSpecification = 'false' ! dataValue = 'org.jhpc.cn2.trnsclsrtask.TCTask'> ! <UML:TaggedValue.type> ! <UML:TagDefinition xmi.idref = 'a10'/> ! </UML:TaggedValue.type> ! </UML:TaggedValue> ! </UML:ModelElement.taggedValue> ! <UML:StateVertex.outgoing> ! <UML:Transition xmi.idref = 'a95'/> ! <UML:Transition xmi.idref = 'a96'/> ! </UML:StateVertex.outgoing> ! <UML:StateVertex.incoming> ! <UML:Transition xmi.idref = 'a78'/> ! </UML:StateVertex.incoming> ! /UML:ActionState> < !
  • 17. CN/XML Descriptor Generated from XMI (Activity Diagram) ! ?xml version=quot;1.0quot;?> < ! cn2> < ! <client class=quot;TransCloserquot; log=quot;CN_Client1047909210005.logquot; port=quot;5666quot;> ! <job> ! <task name=quot;tctask1quot; jar=quot;tasksplit.jarquot; class=quot;org.jhpc.cn2.transcloser.TaskSplitquot; depends=quot;quot;> ! <task-req> ! <memory>1000</memory> ! <runmodel>RUN_AS_THREAD_IN_TM</runmodel> ! </task-req> ! <param type=quot;Stringquot;>matrix.txt</param> ! </task> ! <task name=quot;tctask2quot; jar=quot;tctask.jarquot; class=quot;org.jhpc.cn2.trnsclsrtask.TCTaskquot; depends=quot;tctask1quot;> ! <param type=quot;Integerquot;>1</param> ! <task-req> ! <memory>1000</memory> ! <runmodel>RUN_AS_THREAD_IN_TM</runmodel> ! </task-req> ! </task> ! <task name=quot;tctask3quot; jar=quot;tctask.jarquot; class=quot;org.jhpc.cn2.trnsclsrtask.TCTaskquot; depends=quot;tctask1quot;> ! <param type=quot;Integerquot;>2</param> ! <task-req> ! <memory>1000</memory> ! <runmodel>RUN_AS_THREAD_IN_TM</runmodel> ! </task-req> ! <param type=quot;Stringquot;>HELLO_WORLD</param> ! </task> ! <task name=quot;tctask4quot; jar=quot;tctask.jarquot; class=quot;org.jhpc.cn2.trnsclsrtask.TCTaskquot; depends=quot;tctask1quot;> ! <param type=quot;Integerquot;>3</param>
  • 18. Conclusions • This work is at a preliminary stage. CN has a mature implementation but is still not a prevalent approach. • We've been successful to go from UML to CN's XML descriptors, to running programs. • Not all parallel programs have a simple decomposition. (Breaking news!) • Other UML functionality will need to be introduced to model complex (internal) task structure. • CN has much in common with workflow systems but is not aimed directly at supporting SOA. CN computations, of course, can be exposed as proper services. • That said, UML is aimed at large-scale software engineering. A component modeled with UML can be embedded in a larger UML diagram and/or stand on its own.
  • 19. Futures • CN is an active and ongoing research effort. • Explore other aspects of UML, especially for modeling internal task behavior. • Integrate CN (a P2P clustering framework) with Hydra (a P2P storage framework). • Replace CN task messaging/signaling with Trull, an event- based framework for concurrent (and distributed) systems, led by Konstantin Läufer (also at Loyola University Chicago). • Redo Intelligent Object Editor (not covered here) using Eclipse or use Eclipse UML plugin. • Extend work for other grid/clustering projects.