| |
Project Ideas
Page history last edited by Koushik Sen 11 mos ago
Project Ideas
- High-level scripting front-end to CUDA or OpenCL or OpenMP
- Deterministic Structured Parallel Programming: Design a scripting language with structured fork-join (similar to Cilk). However, unlike Cilk, a fork will also fork the shared heap into two partitions. A join operation will merge partitioned regions. This will guarantee deterministic behavior by design.
- A Deterministic Structured Actor Language: Refer to the Actor programming model. We want to design a structured actor programming language so that we can get rid of asynchrony. The language will support structured way to fork and join actors.
- Race Free Explicit Shared Memory Parallel Programming: Design a language where shared data structures (regions) must be declared explicitly. Shared data structures (regions) can be accessed through shared pointers. A thread cannot change a shared data structure directly; however, a thread can modify a shared data structure by making the data structure local When a thread makes a shared data structure local, it becomes inaccessible to other threads---a runtime exception is thrown if an inaccessible data structure is accessed.
- Provide support for the pipe-and-filter pattern (also known as streaming or process-networks), where a collection of shared nothing agents communicate only via messages sent over buffered queues (similar to Unix pipes).
- Implement the agent-and-repository pattern using software transactional memory. The repository would be an actor holding state, and would provide the illusion of serial processing of incoming requests while using optimistic concurrency internally to provide parallel execution.
- Provide support for guarded atomic actions as the basis of a concurrent event processing extension. Events would be external triggers such as network packets, the guards would be predicates over the events, and the actions would be serial pieces of code to execute when the guard was true. The implementation should try to execute actions in parallel where possible while maintaining the control and data dependencies implied by the guards and actions.
Project Ideas
|
|
Tip: To turn text into a link, highlight the text, then click on a page or file from the list above.
|
|
|
Comments (0)
You don't have permission to comment on this page.