Maximilian Berger David Gstir Thomas Fahringer Distributed and parallel Systems Group University of Innsbruck Austria Oct, 13, Krakow, PL.
Outline Motivation Architecture Example Use Case Conclusions
Motivation The Grid is heterogeneous Clusters are (mostly) homogeneous Multiple Architectures, Distributions, Versions, Libraries 32 / 64 Bit Intel / Sparc Linux / Solaris SL Linux, Redhat, Debian, etc. Will my software run on this Grid site?
Possible Solutions Homogenization Make all sites equal Same Hardware Same Software Partially done in EGEE (Scientific Linux, fixed version) Virtualization Provide a virtual machine which provides a known environment Large Overhead!
Possible Solutions (cont.) Resource Descriptions Every Resource published information about itself Grid middleware uses this information to select sites Example: GLUE schema Problem: Often Incomplete! Mostly done manually Automated Software detection Automatic detect installed software Provide this information back to the user
Softcrawl Architecture
Crawler Contains a list of plug-ins Each plug-in describes Key-Value pairs about software Test script Parser component Results are stored in database (e.g. BDII) Tests are run periodically In the context of a normal user Multiple tests can be combined into one Grid job
Example Use Case Java Runtime Environment Application is written in Java Is Java installed? If so, which Version? Does JAVA_HOME point to a valid location? Prototype implementation Uses internal DB Runs in context of a personal user
Example Use Case: Script #!/bin/sh echo "-- WHICH OUTPUT BEGIN --" which java echo "-- WHICH OUTPUT END --" echo "-- VERSION OUTPUT BEGIN --" `which java` -version echo "-- VERSION OUTPUT END --" echo "-- JAVA_HOME OUTPUT BEGIN --" echo $JAVA_HOME echo "-- JAVA_HOME OUTPUT END --" echo "-- JAVA_HOME_VALID OUTPUT BEGIN --" [ -x $JAVA_HOME/bin/java ] && echo true || echo false echo "-- JAVA_HOME_VALID OUTPUT END --"
Example Use Case: Values KeyExample ValueType Environment.java_home. exists TrueBoolean Java.binary.path/usr/lib/jvm/java/bin/javaString Environment.java_home. valid TrueBoolean Environment.java_home. value /usr/lib/jvm/javaString Java.version.number Double Java.version.stringjava version " " Java (TM) SE Runtime Environment (build b03) Java HotSpot(TM) Server VM (build 11.3-b02, mixed mode) String
Example Use Case: Results
Conclusions Homogenization is not an option Software description helps Software description must be automated Users must be able to create tests Prototype implementation successful Collected data can be used to create better resource descriptions Jobs are now only run on sites where they actually work!