Scioto
Line 1: | Line 1: | ||
Scioto, or Shared Collections of Task Objects, is a lightweight framework for providing task management on | Scioto, or Shared Collections of Task Objects, is a lightweight framework for providing task management on | ||
distributed memory machines under one-sided and global-view parallel programming models. Scioto provides locality aware dynamic load balancing and interoperates with MPI, ARMCI, and Global Arrays. Through task parallelism, the Scioto framework provides a solution for overcoming irregularity, load imbalance, and heterogeneity as well as dynamic mapping of computation onto emerging architectures. | distributed memory machines under one-sided and global-view parallel programming models. Scioto provides locality aware dynamic load balancing and interoperates with MPI, ARMCI, and Global Arrays. Through task parallelism, the Scioto framework provides a solution for overcoming irregularity, load imbalance, and heterogeneity as well as dynamic mapping of computation onto emerging architectures. | ||
+ | |||
+ | == Scioto Programming Model == | ||
+ | |||
+ | Scioto provides the user with a task pool programming model. Under this model the user expresses their computation as a set of ''tasks'' that can be executed in parallel. Tasks read inputs from their task descriptor as well as from data stored in teh global address space. Tasks store their output in the global address space and are also permitted to add new tasks to the task collection. | ||
+ | |||
+ | Below is pseudocode that shows the structure of a simple Scioto program. | ||
+ | |||
+ | <pre> | ||
+ | typedef struct { | ||
+ | double args; | ||
+ | } mytask_t; | ||
+ | |||
+ | int main() { | ||
+ | gtc_t tc = gtc_create(...); | ||
+ | task_t task = gtc_task_create(...); // Create a task descriptor | ||
+ | mytask_t my_t = gtc_task_body(task); // Place arguments in the task body | ||
+ | |||
+ | my_t.args = ...; | ||
+ | |||
+ | gtc_task_add(task); | ||
+ | |||
+ | gtc_process(tc); // Enter task-parallel region | ||
+ | } | ||
+ | </pre> | ||
== Publications == | == Publications == |
Revision as of 21:58, 11 May 2009
Scioto, or Shared Collections of Task Objects, is a lightweight framework for providing task management on distributed memory machines under one-sided and global-view parallel programming models. Scioto provides locality aware dynamic load balancing and interoperates with MPI, ARMCI, and Global Arrays. Through task parallelism, the Scioto framework provides a solution for overcoming irregularity, load imbalance, and heterogeneity as well as dynamic mapping of computation onto emerging architectures.
Contents |
Scioto Programming Model
Scioto provides the user with a task pool programming model. Under this model the user expresses their computation as a set of tasks that can be executed in parallel. Tasks read inputs from their task descriptor as well as from data stored in teh global address space. Tasks store their output in the global address space and are also permitted to add new tasks to the task collection.
Below is pseudocode that shows the structure of a simple Scioto program.
typedef struct { double args; } mytask_t; int main() { gtc_t tc = gtc_create(...); task_t task = gtc_task_create(...); // Create a task descriptor mytask_t my_t = gtc_task_body(task); // Place arguments in the task body my_t.args = ...; gtc_task_add(task); gtc_process(tc); // Enter task-parallel region }
Publications
Scioto: A Framework for Global-View Task Parallelism James Dinan, Sriram Krishnamoorthy, D. Brian Larkins, Jarek Nieplocha, P. Sadayappan Proc. of 37th Intl. Conference on Parallel Processing. Portland, OR, Sept. 8-12, 2008. PDF PPT
Project Members
- James Dinan (Scioto maintainer)
- D. Brian Larkins
- Prof. P. Sadayappan
- Sriram Krishnamoorthy
- Jarek Nieplocha
Acknowledgements
This research was supported in part by DOE grant #DE-FC02-06ER25755 and NSF grant #0403342.
Download
We are currently providing early development snapshots for download. Please see the included README file for installation instructions. For questions or comments, contact Jim Dinan (dinan at cse.ohio-state.edu).
- Dev Snapshot, 01-18-2009 [1]