8,744 research outputs found
Towards an Adaptive Skeleton Framework for Performance Portability
The proliferation of widely available, but very different, parallel architectures
makes the ability to deliver good parallel performance
on a range of architectures, or performance portability, highly desirable.
Irregularly-parallel problems, where the number and size
of tasks is unpredictable, are particularly challenging and require
dynamic coordination.
The paper outlines a novel approach to delivering portable parallel
performance for irregularly parallel programs. The approach
combines declarative parallelism with JIT technology, dynamic
scheduling, and dynamic transformation.
We present the design of an adaptive skeleton library, with a task
graph implementation, JIT trace costing, and adaptive transformations.
We outline the architecture of the protoype adaptive skeleton
execution framework in Pycket, describing tasks, serialisation,
and the current scheduler.We report a preliminary evaluation of the
prototype framework using 4 micro-benchmarks and a small case
study on two NUMA servers (24 and 96 cores) and a small cluster
(17 hosts, 272 cores). Key results include Pycket delivering good
sequential performance e.g. almost as fast as C for some benchmarks;
good absolute speedups on all architectures (up to 120 on
128 cores for sumEuler); and that the adaptive transformations do
improve performance
Compiling vector pascal to the XeonPhi
Intel's XeonPhi is a highly parallel x86 architecture chip made by Intel. It has a number of novel features which make it a particularly challenging target for the compiler writer. This paper describes the techniques used to port the Glasgow Vector Pascal Compiler to this architecture and assess its performance by comparisons of the XeonPhi with 3 other machines running the same algorithms
Fault Localization Models in Debugging
Debugging is considered as a rigorous but important feature of software
engineering process. Since more than a decade, the software engineering
research community is exploring different techniques for removal of faults from
programs but it is quite difficult to overcome all the faults of software
programs. Thus, it is still remains as a real challenge for software debugging
and maintenance community. In this paper, we briefly introduced software
anomalies and faults classification and then explained different fault
localization models using theory of diagnosis. Furthermore, we compared and
contrasted between value based and dependencies based models in accordance with
different real misbehaviours and presented some insight information for the
debugging process. Moreover, we discussed the results of both models and
manifested the shortcomings as well as advantages of these models in terms of
debugging and maintenance.Comment: 58-6
- …