Browsing by Author "Tallent, Nathan"
Now showing 1 - 3 of 3
Results Per Page
Sort Options
Item Design and Implementation of whirl2xaif and xaif2whirl(2003-11) Tallent, Nathan; Fagan, MikeIn order to connect the Open64 Fortran front end to the xaifbooster differentiation engine, we needed to develop bridging tools to translate between Open64 intermediate representation language whirl and xaifbooster intermediate representation XAIF. This report describes the design and implementation of these translation tools: whirl2xaif and xaif2whirl.Item Effective Performance Measurement and Analysis of Multithreaded Applications(2008-10-13) Mellor-Crummey, John; Tallent, NathanUnderstanding why the performance of a multithreaded program does not improve linearly with the number of cores in a sharedmemory node populated with one or more multicore processors is a problem of growing practical importance. This paper makes three contributions to performance analysis of multithreaded programs. First, we describe how to measure and attribute parallel idleness, namely, where threads are stalled and unable to work. This technique applies broadly to programming models ranging from explicit threading (e.g., Pthreads) to higher-level models such as Cilk and OpenMP. Second, we describe how to measure and attribute parallel overhead—when a thread is performing miscellaneous work other than executing the user’s computation. By employing a combination of compiler support and post-mortem analysis, we incur no measurement cost beyond normal profiling to glean this information. Using idleness and overhead metrics enables one to pinpoint areas of an application where concurrency should be increased (to reduce idleness), decreased (to reduce overhead), or where the present parallelization is hopeless (where idleness and overhead are both high). Third, we describe how to measure and attribute arbitrary performance metrics for high-level multithreaded programming models, such as Cilk. This requires bridging the gap between the expression of logical concurrency in programs and its realization at run-time as it is adaptively partitioned and scheduled onto a pool of threads. We have prototyped these ideas in the context of Rice University’s HPCTOOLKIT performance tools. We describe our approach, implementation, and experiences applying this approach to measure and attribute work, idleness, and overhead in executions of Cilk programs.Item Porting Open64 to the Cygwin Environment(2003-11) Tallent, Nathan; Fagan, MikeCygwin is a Linux-like environment for Windows. It is sufficiently complete and stable that porting even very large codes to the environment is relatively straightforward. Cygwin is easy enough to download and install that it provides a convenient platform for traveling with code and giving conference demonstrations (via laptop) -- even potentially expanding a code's audience and user base (via desktop). However, for various reasons, Cygwin is not 100% compatible with Linux. We describe the major problems we encountered porting Rice University's Open64/SL code base to Cygwin and present our solutions.