Il modello di tasking in OpenMP

The widespread adoption of multicore processors in all kind of computing devices is springing interest for parallel computing, which is the only approach to achieve the promised performance boosts. Parallel computing is not easy, and the resulting complexity, which is usually tolerated in the computational science field, must be strictly controlled in commercial software life cycles. OpenMP is a widely supported industrial standard for parallel computing on multiprocessors systems. Its basic principles, simplicity and incremental approach, make it an extremely productive paradigm. Up to version 2.5, OpenMP didn’t directly support parallelization of algorithms in which more work is generated dynamically and with irregular patterns as data are processed. These algorithms are of growing relevance in the scientific realm, and are widespread in most commercial software. OpenMP 3.0 introduced a new tasking model, that allows work to be dynamically generated and assigned to idle processors. CASPUR was a very active contributor to the new model development.