Gregor von Laszewski, Andrew Younge, Leor Dilmanian, Xi He, Paresh Khatri, Sanket Patel, Fugang Wang
Cyberaide Shell is an advanced but simple to use system shell which facilitates the use of current and future cyberinfrastructure. It is based on the integration of semantically enhanced commands and a dynamic interfaces that allow users to access complex cyberinfrastructure in an easy, intuitive, and ad-hoc fashion. This is accomplished by abstracting the complexities of resource, task, workflow, and application management through a semantic command line interpreter. Through a service integration mechanism, the shell's functionality is exposed to a wide variety of frameworks and programming languages. This includes client interfaces for Java, Ruby, Python, Matlab, R, JavaScript.
The Goal of this project is fourfold:
Latest Gridshell Paper draft: vonLaszewski-08-gridshell.pdf
The following example shows how to login to a teragrid resource without needing to remember all the details about the hostname. The keyword “ranger” is associated with the hostname and a lookup is performed on keywords in the shell that than get expanded based on the semantic context. Thus a login would be expanded to the hostname.
cyberaide> list resources
cyberaide> login ranger
...
ranger> exit
cyberaide> exec ranger /bin/uname
The following example shows how to set up a pool of resources and execute commands on it based on a scheduler.
cyberaide> set pool
cyberaide> add pool -name ranger ranger.tacc.teragrid.org
cyberaide> add pool -name cool cool.rit.edu
...
cyberaide> set -policy scheduler random pool
...
cyberaide> set jobs
cyberaide> add -name job1 /home/gregor/bin/climate -512
cyberaide> add -name job2 /home/gregor/bin/climate -256
...
cyberaide> list jobs
No. Name Command Resource Status
==========================================================
1 job1 /home/gregor/bin/climate -512 none Defined
2 job2 /home/gregor/bin/climate -256 none Defined
cyberaide> machine = getNext pool
cyberaide> list resources
No. Nanme Endpoint
==========================================================
1 ranger ranger.tacc.rit.edu
2 cool cool.rit.edu
cyberaide> job = getNext job
cyberaide> exec machine job
While accessing a variety of information services, it is possible to schedule the jobs based on runtime information. We have combined a number of information services into an aide service that aides the user to use resources that have higher likely hood to get things accomplished. This includes the availability of resources, their utilization, and the availability of information provided by the application user to run the job.
cyberaide> shell
cyberaide> best_resource = aide -deadline 01/01/2009 03:00pm -nodes 5
cyberaide> submit -resource best_resource job