Jaspal Subhlok

Learn More
The idea of exploiting both task and data parallelism in programs is appealing. However, identifying realistic, yet manageable example programs that can beneet from such a mix of task and data parallelism is a major problem for researchers. We address this problem by describing a suite of ve application from the domains of scientiic, signal, and image(More)
One of the primary reasons debugging shared-memory parallel programs is harder than debugging sequential programs is that the implementation of a parallel program is free to execute tasks in any order and this order might change from one execution of the program to the next. This can lead to unpredictable results if a program depends on this scheduling.(More)
This paper addresses job scheduling for parallel supercomputers. Modern parallel systems with n nodes can be used by jobs requesting up to n nodes. If less than n nodes are requested, multiple jobs can be run at the same time, allowing several users to use the system. One of the challenges for the operating system is to give reasonable service to a diverse(More)
For many applications, achieving good performance on a private memory parallel computer requires exploiting data parallelism as well as task parallelism. Depending on the size of the input data set and the number of nodes (i.e., processors), diierent tradeoos between task and data parallelism are appropriate for a parallel system. Most existing compilers(More)
Networked systems provide a cost-effective platform for parallel computing, but the applications have to deal with the changing availability of computation and communication resources. Network-awareness is a recent attempt to bridge the gap between the realities of networks and the demands of applications. Network-aware applications obtain information about(More)
High Performance Fortran (HPF) has emerged as a standard dialect of Fortran for data parallel computing. However, for a wide variety of applications, both task and data parallelism must be exploited to achieve the best possible performance on a multicomputer. We present the design and implementation of a Fortran compiler that integrates task and data(More)
Understanding synchronization is important for a parallel programming tool that uses dependence analysis as the basis for advising programmers on the correctness of parallel constructs. This paper discusses static analysis methods that can be applied to parallel programs with event variable synchronization. The objective is to be able to predict potential(More)
This paper addresses optimal mapping of parallel programs composed of a chain of data parallel tasks onto the processors of a parallel system. The input to the programs is a stream of data sets, each of which is processed in order by the chain of tasks. This computation structure, also referred to as a data parallel pipeline, is common in several(More)