Karajan

From Java CoG Kit

Jump to: navigation, search

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.

  1. Karajan:Lightweight threading
  2. Karajan:Asynchronicity
  3. Karajan:Channels - Portable functional abstractions
  4. Karajan:The role of schedulers
  5. Karajan:Lexical parallelism
  6. Karajan:Thoughts on fault tolerance
  7. 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.

Personal tools
Collaboration and Jobs