Scioto
(→Download) |
(→Project Members) |
||
Line 56: | Line 56: | ||
Proc. of 37th Intl. Conference on Parallel Processing. Portland, OR, Sept. 8-12, 2008. | Proc. of 37th Intl. Conference on Parallel Processing. Portland, OR, Sept. 8-12, 2008. | ||
− | == | + | == People == |
− | * [http://www. | + | === Project Leaders === |
− | + | ||
+ | * [http://www.mcs.anl.gov/~dinan James Dinan] (Primary contact) | ||
* [http://www.cse.ohio-state.edu/~saday Prof. P. Sadayappan] | * [http://www.cse.ohio-state.edu/~saday Prof. P. Sadayappan] | ||
* [http://hpc.pnl.gov/people/sriram/ Sriram Krishnamoorthy] | * [http://hpc.pnl.gov/people/sriram/ Sriram Krishnamoorthy] | ||
+ | |||
+ | === Contributors === | ||
+ | |||
+ | * [http://www.cse.ohio-state.edu/~larkins D. Brian Larkins] | ||
* [http://hpc.pnl.gov/people/jarek/ Jarek Nieplocha] | * [http://hpc.pnl.gov/people/jarek/ Jarek Nieplocha] | ||
Revision as of 21:20, 29 November 2010
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 the 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.
// The user decides how to store task arguments within the task // body. Generally, users define a struct to organize this data. typedef struct { double args; } mytask_t; // The user provides a function that implements the task. This // function is run by Scioto when executing the task. void task_fcn(gtc_t gtc, task_t *my_task) { // ... } int main() { gtc_t tc = gtc_create(...); // Create a task collection task_t task = gtc_task_create(...); // Create a task descriptor mytask_t my_t = gtc_task_body(task); // Get the task body my_t.args = ...; // Fill in the task's arguments gtc_task_add(task); // Add the task to the task collection gtc_process(tc); // Enter task-parallel region }
Documentation
Programming Interface
Documentation on Scioto's user API can be found here: Scioto API
Publications
Scalable Work Stealing
PDF
PPT
James Dinan, Sriram Krishnamoorthy, D. Brian Larkins, Jarek Nieplocha, P. Sadayappan
Proc. 21st Intl. Conference on Supercomputing (SC). Portland, OR, Nov. 14-20, 2009.
Scioto: A Framework for Global-View Task Parallelism
PDF
PPT
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.
People
Project Leaders
- James Dinan (Primary contact)
- Prof. P. Sadayappan
- Sriram Krishnamoorthy
Contributors
Acknowledgements
This research was supported in part by DOE grant #DE-FC02-06ER25755 and NSF grant #0403342.
Download
Please see the included README file for installation instructions. If you have questions or comments, contact Jim Dinan (dinan at mcs.anl.gov).
- Scioto v0.1 -- 11/15/2010