a parallel debugger, PGDBG, and a performance profiler, PGPROF, both of which support OpenMP and MPI ... TFLOPS Compilers 1997 Linux x86 Compilers 1998 OpenMP for Linux x86 1999 Streaming SIMD Extensions ... more details
High Performance Fortran HPF is an extension of Fortran 90 with constructs that support parallel computing , published by the High Performance Fortran Forum HPFF . The HPFF was convened and chaired by Ken Kennedy computer scientist Ken Kennedy of Rice University . The first version of the HPF Report was published in 1993. Building on the array syntax introduced in Fortran 90, HPF uses a data parallelism data parallel model of computation to support spreading the work of a single Array data structure array computation over multiple processors. This allows efficient implementation on both SIMD and MIMD style architectures. HPF features included New Fortran statements, such as code FORALL code , and the ability to create pure function code PURE code side effect computer science side effect free procedures Compiler directives for recommended distributions of array data Extrinsic procedure interface for interfacing to non HPF parallel procedures such as those using message passing Additional library routines including environmental inquiry, parallel prefix suffix e.g., prefix sum scan , data scattering, and sorting operations Fortran 95 incorporated several HPF capabilities. In response, the HPFF again convened and published the HPF 2.0 Report. The updated report removed material which was already covered by Fortran 95. The report was also reorganized and revised based on experience with HPF 1.0. While some vendors did incorporate HPF into their compilers in the 1990s, some aspects proved difficult to implement and of questionable use. Since then, most vendors and users have moved to OpenMP based parallel processing. citation needed date March 2007 However HPF continues to have influence. For example the proposed code BIT code data type for the upcoming Fortran 2008 standard contains a number of new intrinsic functions taken directly from HPF. See also Partitioned global address space http portal.acm.org citation.cfm?id 1238844.1238851 The rise and fall of High Performan ... more details
Infobox software name Allinea DDT title Allinea DDT developer Allinea Software Ltd. released 2002 latest release version 3.1 latest release date Start date and age 2011 12 operating system Linux , AIX , Solaris operating system Solaris and Blue Gene platform IA 32 Intel x86 32 bit , x86 64 x64 , Itanium , PowerPC and CUDA size Nowrap 36 Megabyte MB language English status Active genre Debugger licence Proprietary software Proprietary commercial software website URL www.allinea.com The Distributed Debugging Tool , Allinea DDT, is a commercial debugger produced by Allinea Software of Warwick , United Kingdom , primarily for debugging Parallel computing parallel Message Passing Interface MPI or OpenMP programs, including those running on Computer cluster clusters of Linux machines, but also used by many for scalar code in C programming language C , C and Fortran Fortran 90 . According to Allinea s CEO Mike Fish, as of June 2011 it is used on 36 of the top 100 supercomputers on the TOP500 list. ref cite news url http www.hpcwire.com hpcwire 2011 06 01 allinea selected as a red herring top 100 europe technology company.html date 1 June 2011 title Allinea Selected as a Red Herring Top 100 Europe Technology Company ref It is used to find bugs on both small and large clusters, from 1 to 1,000s of processors . It is the first debugger to be able to debug a Petascale system having debugged 220,000 processes, over 2 Petaflops, on a Cray XT5 at Oak Ridge National Laboratories ref cite news url http www.hpcprojects.com news news story.php?news id 1008 title Scalable debugging demonstrated on Jaguar supercomputer magazine High Performance Computing Projects date 2 December 2009 ref ref cite web url http www.olcf.ornl.gov 2010 07 12 upgrade adds muscle to debugger title Upgrade Adds Muscle to Debugger publisher Oak Ridge National Laboratories accessdate 14 June 2011 ref ref cite news url http cacm.acm.org news 96797 ornl allinea prep debugging tool for petascale supercomputers ful ... more details
About compiler intrinsic functions X toolkit Intrinsics Refimprove date December 2009 In compiler theory , an intrinsic function is a function available for use in a given computer language language whose implementation is handled specially by the compiler. Typically, it substitutes a sequence of automatically generated instructions for the original function call, similar to an inline function . Unlike an inline function though, the compiler has an intimate knowledge of the intrinsic function and can therefore better integrate it and optimize it for the situation. This is also called builtin function in many languages. Compilers that implement intrinsic functions generally enable them only when the user has requested compiler optimizations optimization , falling back to a default implementation provided by the language runtime environment otherwise. Intrinsic functions are often used to explicitly implement Vectorization parallel computing vectorization and parallel processing parallelization in languages which do not address such constructs. Altivec and OpenMP are examples of API s which use intrinsic functions to declare, respectively, vectorizable and multiprocessor aware operations during compilation. The compiler parses the intrinsic functions and converts them into vector math or multiprocessing object code appropriate for the target platform. Microsoft and Intel s C C compilers as well as GNU Compiler Collection GCC implement intrinsics that map directly to the x86 SIMD instructions MMX instruction set MMX , Streaming SIMD Extensions SSE , SSE2 , SSE3 , SSSE3 , SSE4 . In the latest version of the Microsoft Visual Studio Microsft Visual Studio VS2010 , the Visual C 2B 2B Visual C compiler does not support inline assembler for X86 64 ref cite web url http msdn.microsoft.com en us library wbk4z78b.aspx?ppud 4 title Intrinsics and Inline Assembly publisher Microsoft author Microsoft Developer Network MSDN Microsoft Visual Studio Visual Studio 2010 VS2010 accessda ... more details
Refimprove date December 2009 Threads synchronization primitive In parallel computing , a barrier is a type of synchronization computer science synchronization method. A barrier for a group of threads or processes in the source code means any thread process must stop at this point and cannot proceed until all other threads processes reach this barrier. Many collective routines and directive based parallel languages impose implicit barriers. For example, a parallel do loop in Fortran with OpenMP will not be allowed to continue on any thread until the last iteration is completed. This is in case the program relies on the result of the loop immediately after its completion. In message passing , any global communication such as reduction or scatter may imply a barrier. See also Rendezvous Plan 9 . Dynamic Barriers Classic barrier constructs define the set of participating processes threads statically. This is usually done either at program startup or when a barrier like the POSIX Threads Pthreads barrier is instantiated. This restricts the possible applications for which barriers can be used. To support more dynamic programming paradigms like fork join parallelism, the sets of participants have to be dynamic. Thus, the set of processes threads participating in a barrier operation needs to be able to change over time. X10 programming language X10 introduced the concept of clocks for that purpose, which provide a dynamic barrier semantic. Building on clocks, phasers ref name phasers Cite doi 10.1145 1375527.1375568 ref have been proposed to add even more flexibility to barrier synchronization. With phasers it is possible to express data dependencies between the participating processes explicit to avoid unnecessary over synchronization. Processor and compiler barriers Memory barrier is a class of instructions which cause a CPU processor to enforce an ordering constraint on memory operations issued before and after the barrier instruction. A barrier can also be a high level ... more details
ConceptGCC is a fork software development fork of the GNU Compiler Collection GNU C compiler that implements a preliminary version of the concept generic programming type concepts C 11 Concepts feature , originally planned for the forthcoming new International Organization for Standardization ISO Open standard standard for the C programming language C 11 , at that time known as C 0x. Concepts were removed from C 11 in July 2009. ref http www.informit.com guides content.aspx?g cplusplus&seqNum 441 InformIT The Removal of Concepts From C 0x ref ref At this meeting of Committee, Frankfurt, July 2009 , Concepts, the major feature of C 0x, which enables constrained genericity, or template argument prototyping, has been removed from the C 0x draft. http www 949.ibm.com software rational cafe people Michael Wong Michael Wong , the IBM and Canadian representative to the C Standard and OpenMP Committee. http www 949.ibm.com software rational cafe blogs cpp standard 2009 07 20 the view or trip report from the july 2009 c standard meeting The View or trip report from the July 2009 C Standard meeting ref Developed by a team led by Douglas Gregor co author, along with Bjarne Stroustrup , of the C 11 concepts proposal N2081 at the Open Systems Laboratory at Indiana University , ConceptGCC serves as the current reference implementation for the proposal. Both the proposal and ConceptGCC are actively evolving, and are maintained more or less in parallel. The current version of ConceptGCC is considered an Software release life cycle Alpha alpha release, and as such should be considered highly experimental. The version of C implemented by ConceptGCC is known as ConceptC . Until or unless the concepts proposal is included in the finalized new standard, ConceptC must be considered an experimental extension to standard C . As the new standard solidifies, it is planned that the ConceptGCC extensions will be merged back into mainline GCC, initially for GCC 4.3 as an optionally enabled exte ... more details
Infobox software name ROSE title ROSE logo File screenshot File caption collapsible author developer Lawrence Livermore National Laboratory released Start date YYYY MM DD df yes no discontinued latest release version latest release date Start date and age YYYY MM DD df yes no latest preview version latest preview date Start date and age YYYY MM DD df yes no frequently updated DO NOT include this parameter unless you know what it does programming language C operating system Linux platform size language status genre Compiler license BSD licenses website URL http www.rosecompiler.org Portal Free software The ROSE compiler framework, developed at Lawrence Livermore National Laboratory LLNL , is an open source software open source compiler infrastructure to generate source to source analyzers and translators for multiple programming language source languages including C programming language C , C programming language C , and Fortran . It also supports OpenMP , Unified Parallel C UPC and certain binary files. Unlike most other research compilers, ROSE is aimed to enable non experts to leverage compiler technologies to build their own custom software analyzers and optimizers. The infrastructure ROSE consists of multiple front ends, a midend operating on its internal intermediate representation IR , and backends regenerating unparse source code from IR. Optionally, vendor compilers can be used to compile the unparsed source code into final executables. ROSE uses the http www.edg.com index.php?location c frontend Edison Design Group s C front end to parse C and C applications. Fortran support, including F2003 and earlier FORTRAN 77 F77 90 95 versions, is based on the http fortran parser.sourceforge.net Open Fortran Parser OFP developed at Los Alamos National Laboratory . The ROSE IR consists of an abstract syntax tree , symbol tables, control flow graph, etc. It is an object oriented IR with several levels of interfaces for quickly building source to source translators. All ... more details
Infobox software name graph tool title logo File Graph tool logo.png 250px screenshot File caption collapsible author developer Tiago de Paula Peixoto released Start date YYYY MM DD df yes no discontinued latest release version 2.2.15 latest release date Start date and age 2011 09 04 df yes no latest preview version latest preview date Start date and age YYYY MM DD df yes no frequently updated DO NOT include this parameter unless you know what it does programming language Python programming language Python , C operating system Cross platform platform size language status genre Software library license GPL website URL graph tool.skewed.de graph tool is an efficient Python programming language Python module for manipulation and statistical analysis of Graph mathematics graphs a.k.a. Network theory networks . Contrary to most other python modules with similar functionality, the core data structures and algorithms of graph tool are implemented in C , making extensive use of metaprogramming , based heavily on the Boost Graph Library . This confers a level of performance which is comparable both in memory usage and computation time to that of a pure C library. Furthermore, many algorithms are implemented in parallel using OpenMP , which provides excellent performance on Multi core processor multi core architectures, without degrading the performance on single core machines. Features Creation and manipulation of Directed graph directed or Graph mathematics undirected graphs . Association of arbitrary information to the vertices, edges or even the graph itself, by means of property maps. Filter vertices and or edges on the fly , such that they appear to have been removed. Support for DOT language dot and GraphML formats. Convenient and powerful graph drawing based on Graphviz . Support for typical statistical measurements degree property histogram, combined degree property histogram, vertex vertex correlations, assortativity , average vertex vertex shortest path , etc. Supp ... more details
Infobox software name EFDC Explorer title EFDC Explorer logo File screenshot File caption collapsible author developer Dynamic Solutions International, LLC released Start date YYYY MM DD df yes no discontinued latest release version EFDC Explorer 6 latest release date latest preview version latest preview date Start date and age YYYY MM DD df yes no frequently updated DO NOT include this parameter unless you know what it does programming language Visual Basic 6 operating system Windows XP, Windows Vista, Windows 7 platform size 55MB language English status genre license website URL http efdc explorer.com EFDC Explorer EE is a Windows based GUI for pre and post processing of the Environmental Fluid Dynamics Code EFDC . The program is developed and supported by the engineering company Dynamic Solutions International DS Intl . EFDC Explorer is designed to support model set up, grid generation Cartesian and orthogonal curvilinear , testing, calibration, and visualization of model results Craig, 2010 . EE supports hydrodynamics, sediment toxics transport, particle tracking and the coupled water quality model HEM3D. ref http efdc explorer.com index.php?option com content&view article&id 60&Itemid 91&lang en ref EFDC was originally developed at Virginia Institute of Marine Science Hamrick, 1996 . It is Open source software and is a widely used, EPA accepted model. ref http www.epa.gov athens research modeling efdc.html ref DS Intl also continues to develop EFDC in conjunction with EFDC Explorer including adding OpenMP multithreading capability . EFDC EFDC Explorer Functions fluid dynamics Hydrodynamic Modeling Sediment transport Sediment Transport Toxics Transport Water quality modelling Water Quality Modeling Wind wave model Wave Impacts and Wind Wave Generation Streamlines, streaklines, and pathlines Lagrangian Particle Tracking Example applications EFDC Explorer has been in distribution since 2003, and is now being used in over 60 countries. Tra Khuc River Tra Khuc Viet ... more details
Strength reduction vectorization parallel computing Vectorization , with code xvector simd code OpenMP The OpenMP shared memory parallelization API is native to all three Solaris Studio compilers. Code ... more details
David J. Kuck was a professor in the Computer Science Department the University of Illinois at Urbana Champaign from 1965 to 1993. He is the father of Olympic silver medalist Jonathan Kuck . While at the University of Illinois at Urbana Champaign he developed the Parafrase compiler system 1977 , which was the first testbed for the development of automatic vectorization and related program transformations. In his role as Director 1986 93 of the Center for Supercomputing Research and Development CSRD UIUC , Kuck led the construction of the CEDAR project, a hierarchical shared memory 32 processor Symmetric multiprocessing SMP supercomputer completed in 1988 at the University of Illinois. ref UIUC Computer Science Department s http www.cs.uiuc.edu about history.php Online Historical Timeline ref He founded Kuck and Associates KAI in 1979 to build a line of industry standard optimizing compilers especially focused upon exploiting parallelism. After CSRD, Kuck transferred his full attentions to KAI and its clients at various US National Laboratories . KAI was acquired by Intel in March 2000, where Kuck currently serves as an Intel Fellow , Software and Solutions Group, and Director of the Parallel and Distributed Solutions Division PDSD . Kuck was the sole software person on the ILLIAC IV project in contrast to all the other hardware oriented members. Kuck is responsible not only for developing many of the initial ideas of how to restructure computer source code for parallelism but also trained many of that field s major players around the world. Honors Kuck is a fellow of the American Association for the Advancement of Science , the Association for Computing Machinery ACM , and the Institute of Electrical and Electronics Engineers . He is also a member of the National Academy of Engineering . He has won the Eckert Mauchly Award from ACM IEEE and the Charles Babbage Outstanding Scientist Award . Kuck is a major contributor in creating OpenMP , a cross platform, directive ... more details
notability date April 2012 The S Lang programming library is a software library for Unix , Microsoft Windows Windows , VMS , OS 2 , and Mac OS X . It provides routines for embedding an interpreter for the S Lang scripting language, and components to facilitate the creation of text based applications ref Linux Bible 2010 Edition Boot Up to Ubuntu, Fedora, KNOPPIX, Debian, openSUSE, and 13 Other Distributions , by Christopher Negus, John Wiley & Sons Wiley , 2009, ISBN 978 0 470 48505 7, p.775 ref . The latter class of functions include routines for constructing and manipulating keymaps, an interactive line editing facility, and both low and high level screen terminal management functions. It is distributed under the terms of the GPL GNU General Public License . Brief history The S Lang programming library was started in 1991 by John E. Davis as a convenient way to reuse code among several of his software projects. The earliest version of the library contained input output routines for interacting with computer terminals, and included an implementation of a simple stack based interpreter with a postscript like syntax that he developed for use in a scientific plotting program. The JED text editor JED text editor was the first program to both embed the interpreter and use the terminal I O components of the library. Interpreter The bulk of what makes up the S Lang library is its interpreter, and it is also where most of the development takes place. Although the original syntax supported by the interpreter resembled postscript, the syntax has evolved to be much more C like, with additional support for object oriented style constructs. As a reflection of Davis s background in Physics and professional interest in Scientific Computing, the language natively supports many vectorized array based operations familiar to Matlab and IDL users ref Getting more from your multicore exploiting OpenMP from an open source numerical scripting language , Noble, M. S., Concurrency and Comp ... more details
Infobox software name OpenWebGlobe SDK screenshot File Openwebglobe swiss3d screenshot February 9 2012.jpg 300px caption OpenWebGlobe SDK developer FHNW University of Applied Sciences Northwestern Switzerland lang de de Fachhochschule Nordwestschweiz Fachhochschule Nordwestschweiz operating system Cross platform status Active genre Virtual Globe Virtual Globe license MIT License MIT website URL http www.openwebglobe.org OpenWebGlobe is a project and technology for processing and interactively visualizing vast volumes of geospatial data in a 3d virtual globe . The OpenWebGlobe virtual globe can have several data categories like image data, elevation data, points of interest , vector data, and 3D objects. Before streaming such massive and complex data over the internet, this data must be pre processed. Such pre processing usually comprises a transformation from a local to a global reference system, creation of pyramid layers or levels of detail LOD , tiling of the data, and optionally compression and encryption. Recently, these algorithms were ported to high performance compute cluster using OpenMP and MPI and are also released as open source . Because data sets are usually large, containing several terabytes, advanced out of core rendering mechanisms with a level of detail approach are used for visualization. ref Martin Christen, Stephan Nebiker, OpenWebGlobe SDK, an Open Source High Performance Virtual Globe SDK for Open Maps, in Manuela Schmidt and Georg Gartner, editors, Proceedings of the 1st European State of the Map, 2011, available at https sotm eu.org userfiles proceedings sotmEU2011.pdf ref OpenWebGlobe is an open source project. It is written in WebGL . The lead developer is the Institute of Geomatics Engineering at the University of Applied Sciences Northwestern Switzerland lang de de Fachhochschule Nordwestschweiz Fachhochschule Nordwestschweiz . Developing Globe Applications The OpenWebGlobe SDK is also a 3D engine on top of WebGL . With the OpenWebGlobe ... more details
in more flavors, namely OpenMP ref name nas99011 Citation last1 Jin first1 H. last2 Frumkin first2 M. last3 Yan first3 J. contribution The OpenMP Implementation of NAS Parallel Benchmarks and Its ... advantage of the MPI OpenMP hybrid programming model were released under the name NPB Multi Zone ... more details