Karajan
From Java CoG Kit
Contents |
Introduction
Karajan is a parallel scripting language, also called a "workflow language". Some of its highlights are:
- High level declarative concurrency. This makes parallel programming easier and less error prone.
- Flexibility. Karajan is a generic language with conditions, iterators, loops, user defined functions and many other high level programming constructs.
- Lightweight threading. This allows higher scalability than using native OS (or Java) threads. Somewhere around 2 orders of magnitude more threads can be used at the same level of memory usage.
- Various levels of fault tolerance (checkpoints, logs)
- Abstract tasks. Grid tasks (jobs, transfers, etc.) can bound to a specific protocol (e.g. Classic-GRAM, WS-GRAM, GridFTP, FTP, etc.) at run-time. Of course, the protocol can also be specified in the source.
- Integrated scheduler/resource broker. It allows managing and balancing of remote resource usage. Combined with abstract tasks, it provides a nice way of dealing with heterogenous environments.
- A service which allows transparent submission of remote scripts and has the ability to use different communication strategies (persistent, callbacks, polling).
Karajan is not GridAnt
Karajan is not the same as GridAnt. Nor is the engine used by Karajan any similar to the one used by Ant/GridAnt. Karajan was developed in part because of the limitations of GridAnt.
Formal Documentation
Java CoG Kit Karajan Workflow Reference Manual
Tutorials
Java CoG Kit Workflow Guide (needs more work)
Informal Documentation
The following is a list of informal documents about various aspects of Karajan including but not limited to the interpreter, overall design goals, and the language. These documents do not apply to a specific version of Karajan, but they may refer to features only present in specific versions.
- Karajan:Lightweight threading
- Karajan:Asynchronicity
- Karajan:Channels - Portable functional abstractions
- Karajan:The role of schedulers
- Karajan:Lexical parallelism
- Karajan:Thoughts on fault tolerance
- Karajan:Thoughts on automatic parallelization
Download
You can download Karajan as part of the Java CoG Kit: http://www.cogkit.org/php/download.html
Publications
Book Chapters
Work Coordination for Grid Computing (to be published), Gregor von Laszewski, Mihael Hategan, and Deepti Kodeboyina, http://www.mcs.anl.gov/~gregor/papers/vonLaszewski-work-coordination.pdf
Java CoG Kit Workflow (to be published), Gregor von Laszewski, Mihael Hategan, and Deepti Kodeboyina, http://www.mcs.anl.gov/~gregor/papers/vonLaszewski-workflow-book.pdf.
Journal Articles
Java CoG Kit Workflow Concepts, Gregor von Laszewski and Mihael Hategan, in Journal of Grid Computing, http://www.mcs.anl.gov/~gregor/papers/vonLaszewski-workflow-jgc.pdf.
new: Electronic Publication Link, Jan. 2006. http://dx.doi.org/10.1007/s10723-005-9013-5
Posters
Karajan: A Grid Orchestration framework, Mihael Hategan, Gregor von Laszewski, and Kaizar Amin, Supercomputing 2004, Pittsburgh, 6-12 November 2004. (Refereed Poster). http://www.sc-conference.org/sc2004.
