MetaHeuristics in the Large

Metaheuristics are procedures that are used to choose between heuristic techniques. They sample a set of solutions that is too large to be completely searched. There is a pressing need for a higher-level architectural perspective in metaheuristics research. A key obstacle is that metaheuristic components suffer from an intrinsic lack of modularity. Building on a […]

Continue reading

Parallel Program Shaping

Software development approaches are not keeping pace with the current trends towards increasingly parallel multi-core/many-core hardware. Most applications programmers are not experts in parallellism, so knowing when and where to effectively deploy parallelism can seem ad-hoc or even impossible. Parallel patterns are high-level entities that abstract away the tedious and complex low-level parallelism code. Like […]

Continue reading

Refactoring Parallel Programs

Software development approaches are not keeping pace with the current trends towards increasingly parallel multi-core/many-core hardware. Most applications programmers are not experts in parallellism, so knowing when and where to effectively deploy parallelism can seem ad-hoc or even impossible. Parallel patterns are high-level entities that abstract away the tedious and complex low-level parallelism code. Like […]

Continue reading

Parallel Pattern Discovery

Software development approaches are not keeping pace with the current trends towards increasingly parallel multi-core/many-core hardware. Most applications programmers are not experts in parallellism, so knowing when and where to effectively deploy parallelism can seem ad-hoc or even impossible. Parallel patterns are high-level entities that abstract away the tedious and complex low-level parallelism code. Like […]

Continue reading