Learn More
E-learning has been a topic of increasing interest in recent years, due mainly to the fact that increased scheduling flexibility as well as tool support can now be offered at a widely affordable level. As a result, many e-learning platforms and systems have been developed and commercialized ; these are based on client-server, peer-to-peer, or, more(More)
Finding synchronization defects is difficult due to non-deterministic orderings of parallel threads. Current tools for detecting synchronization defects tend to miss many data races or produce an overwhelming number of false alarms. In this paper, we describe Helgrind+, a dynamic race detection tool that incorporates correct handling of condition variables(More)
The emergence of inexpensive parallel computers powered by multicore chips combined with stagnating clock rates raises new challenges for software engineering. As future performance improvements will not come "for free" from increased clock rates, performance critical applications will need to be parallelized. However, little is known about the engineering(More)
Automatic performance tuning (auto-tuning) has been used in parallel numerical applications for adapting performance relevant parameters. We extend auto-tuning to general-purpose parallel applications on multicores. This paper concentrates on Atune-IL, an instrumentation language for specifying a wide range of tunable parameters for a generic auto-tuner.(More)
In retail information systems it is common practice to subsume the data of products into product groups, which offers organizational advantages for example when new branches are opened, because they are assigned product groups instead of single products. Inspired by this approach, this paper focuses on business processes and proposes the usage of workflow(More)
We conducted a case study of parallelizing a real program for multicore computers using currently available libraries and tools. We selected the sequential Bzip2 compression program for the study because it's a computing-intensive, widely used, and relevant application in everyday life. Its source code is available, and its algorithm is well documented. In(More)
Transactional Memory (TM) promises to simplify parallel programming by replacing locks with atomic transactions. Despite much recent progress in TM research, there is very little experience using TM to develop realistic parallel programs from scratch. In this paper, we present the results of a detailed case study comparing teams of programmers developing a(More)
Current multicore computers differ in many hardware characteristics. Software developers thus hand-tune their parallel programs for a specific platform to achieve the best performance; this is tedious and leads to non-portable code. Although the software architecture also requires adaptation to achieve best performance, it is rarely modified because of the(More)
Recent multi-paradigm programming languages combine functional and imperative programming styles to make software development easier. Given today's proliferation of multicore processors, parallel programmers are supposed to benefit from this combination, as many difficult problems can be expressed more easily in a functional style while others match an(More)