| 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. |