3 | | Trac is a '''minimalistic''' approach to '''web-based''' management of |
4 | | '''software projects'''. Its goal is to simplify effective tracking and handling of software issues, enhancements and overall progress. |
| 3 | The existing solutions to program parallel architectures range from |
| 4 | parallelizing compilers to distributed concurrent programming offered |
| 5 | by libraries such as MPI. For shared-memory machines or |
| 6 | multi-core machines, libraries based on threads are widely in |
| 7 | use. Intermediate approaches |
| 8 | propose a more structured parallelism. The parallelism is exposed to |
| 9 | the programmer to a less extend, but still allows her to specify |
| 10 | parallel aspects of the algorithm to be implemented. These |
| 11 | intermediate approaches thus give more control over parallelism than |
| 12 | automatic parallelization but are less complex than message passing or |
| 13 | thread-based libraries. |
6 | | All aspects of Trac have been designed with the single goal to |
7 | | '''help developers write great software''' while '''staying out of the way''' |
8 | | and imposing as little as possible on a team's established process and |
9 | | culture. |
| 15 | Algorithmic |
| 16 | skeletons are |
| 17 | one of these approaches. An algorithmic skeleton is a higher-order |
| 18 | function that captures the pattern of a parallel algorithm such as a |
| 19 | pipeline, a parallel reduction, etc. Often the sequential |
| 20 | semantics of the skeleton is quite simple and corresponds to the usual |
| 21 | semantics of similar higher-order functions in functional programming |
| 22 | languages. The user of a skeleton library has just to compose some the |
| 23 | skeletons to write her parallel application. In skeletal parallelism, |
| 24 | data-structure are considered mostly globally for the whole parallel |
| 25 | machine, even in the case of distributed memory machine. That eases |
| 26 | the writing and reading of parallel programs compared to the Single |
| 27 | Program Multiple Data (SPMD) paradigm in which data structures can |
| 28 | only be described locally to a process. The development of SPMD or |
| 29 | threaded programs for shared memory machines is also difficult because |
| 30 | they may contain indeterminism and deadlocks. This is confirmed by |
| 31 | the high complexity of related verification |
| 32 | problems. |
11 | | As all Wiki pages, this page is editable, this means that you can |
12 | | modify the contents of this page simply by using your |
13 | | web-browser. Simply click on the "Edit this page" link at the bottom |
14 | | of the page. WikiFormatting will give you a detailed description of |
15 | | available Wiki formatting commands. |
| 34 | When one is designing a parallel program, the parallel performance is |
| 35 | of course important. It is thus very interesting for the programmer to |
| 36 | rely on a simple yet realistic parallel cost model such as |
| 37 | BSP (Bulk Synchronous |
| 38 | Parallelism) or CGM (Coarse Grained Model). The BSP |
| 39 | model targets all general purpose parallel architectures even if the |
| 40 | abstract BSP computer is a distributed memory machine. Its execution |
| 41 | model separates synchronization and communication and obliges both to |
| 42 | be collective operations. It proposes a simple and accurate cost |
| 43 | model (in this context, cost means the estimate of parallel execution |
| 44 | time) making it possible to predict performances in a realistic and |
| 45 | portable way. The theory of the proof of BSP |
| 46 | programs is also close in complexity to |
| 47 | the sequential case. The BSP model was used successfully for a broad |
| 48 | variety of problems: scientific computation, |
| 49 | genetic algorithms, genetic |
| 50 | programming, neural networks, parallel databases, constraints |
| 51 | solvers, etc. |
17 | | "[wiki:TracAdmin trac-admin] ''yourenvdir'' initenv" created |
18 | | a new Trac environment, containing a default set of wiki pages and some sample |
19 | | data. This newly created environment also contains |
20 | | [wiki:TracGuide documentation] to help you get started with your project. |
21 | | |
22 | | You can use [wiki:TracAdmin trac-admin] to configure |
23 | | [http://trac.edgewall.org/ Trac] to better fit your project, especially in |
24 | | regard to ''components'', ''versions'' and ''milestones''. |
| 53 | OSL, the Orléans Skeleton Library |
| 54 | provides a set of data parallel skeletons which follow the BSP model |
| 55 | of parallel computation. OSL is a library for C++ currently |
| 56 | implemented on top of MPI and it uses meta-programming techniques to |
| 57 | offer a good efficiency. Our goal is thus to provide an easy to use |
| 58 | library for a widely used programming language and that allows simple |
| 59 | reasoning about parallel performances based on a simple and portable |
| 60 | cost model. |