ADAGE Automatic Deployment of Applications in a Grid Environment
Key concepts Supports several programming models Generic description of an application High-level description of resources Creates a deployment plan Placement constraints
ADAGE "v2" Restart with a stable codebase Adage v1 features File transfer Component-oriented design Technos : C++ / XMLSchema / Autotools Interfaced with OAR/OARGRID Plugins Jxta Gfarm MPI Sequence of Jobs Meta
Workflow MPI application description JXTA application description CCM application description <<MPI Plugin conversion>> <<JXTA Plugin conversion>> <<CCM Plugin conversion>> Generic application description <<Deployment planning>> Control parameters Resources description <<Deployment plan execution>> Deployment plan <<Application control>> Deployment report
Description of resources Nodes <compute_node id="node1" sysprops_id="sysprop" hostname="paraquad01"/> <compute_node id="node2" sysprops_id="sysprop" hostname="paraquad02"/> .... System Properties <system_properties id="sysprop"> <node_count>1</node_count> <cpu_count>2</cpu_count> <service command="ssh" type="submission"/> <service command="scp" type="transfer"/> <scratch_dir>/tmp/</scratch_dir> </system_properties> Resources groups <res_group id="grp1"> <shared_fs id="nfs" contact_point="any"> <dir>/shared/</dir> </shared_fs> <member id="node1" type="node"/> <member id="grp2" type="group"/> .... </res_group>
GADe, our Generic Application DEscription model Group of processes independent collective Process executable / implementations arguments environment files (config, lib, data) Launch dependencies wait acked
Control parameters Submission method ssh rsh Transfer parameters scp rcp source type destination Placement constraints <associate id="pg1" id_type="exact" match_type="pattern" match="cluster1"/> <unassociate id="pg" id_type="pattern" match_type="exact" match="cluster12"/> <collocate id="pg4" with="pg1"/> <separate id="pg3" without="pg2"/> Plugin parameters
Our simple planner engine Only one interface : make_plan() Deals with the resourcer Algorithm: resourcer: load(file/oar) planner: resourcer->search_matching(proc group) resourcer: checks_constraints() resourcer: return list<nodes> (less used first) planner: assign(node,process) (rr-style)
Plugin interfaces creation() specific_to_generic() pre_configure() specific_deployment() post_configure()
Sample deployment
Future work Daemon / persistent mode Agents Handle the lifecycle of the application ? Support new application types Need of smart planners OGF JSDL ? Taktuk ? GAT ?
Questions ? ml : adage-devel@lists.gforge.inria.fr www : http://adage.gforge.inria.fr/wiki/
Recommend
More recommend