Tools and libraries

From HP-SEE Wiki

Revision as of 11:09, 2 October 2012 by Marko.misic (Talk | contribs)
Jump to: navigation, search

Contents

Parellel Programming News

MPICH-2

MPICH2-1.5rc1 released (Aug. 15, 2012) A feature preview release of MPICH2, 1.5rc1, is now available to download. This release contains many new features. This release is not recommended for production systems at this time.

The current stable release for MPICH2 is 1.4.1p1. It was released on Sep. 2, 2011.

OpenMP

OpenMP aims to provide parallel language support for automotive, aeronautics, biotech, and financial applications.

OpenMP, the de-facto standard for parallel programming on shared memory systems, continues to extend its reach beyond pure HPC to include embedded systems, multicore and real time systems. A new version is being developed that will include support for accelerators, error handling, thread affinity, tasking extensions and Fortran 2003. The OpenMP consortium welcomes feedback from all interested parties and will use this feedback to improve the next version of OpenMP.

OpenMP aims to provide high-level parallel language support for a wide range of applications, from automotive and aeronautics to biotech, automation, robotics and financial analysis.

The key features that the OpenMP consortium is working on include:

Support for accelerators. A mechanism will be provided to describe regions of code where data and/or computation should be moved to any of a wide variety of computing devices. User experiences with the OpenACC directives will provide important information to the OpenMP effort. The minimum feature core required for an initial release has been defined.

Error handling. Error handling capabilities of OpenMP will be defined to improve the resiliency and stability of OpenMP applications in the presence of system-level, runtime-level, and user-defined errors. Features to cleanly abort parallel OpenMP execution have been defined, based on conditional cancellation and user-defined cancellation points.

Thread affinity. Users will be given a way to define where to execute OpenMP threads. Platform-specific data and algorithm-specific properties are separated, offering a deterministic behavior and simplicity in use. The advantages for the user are better locality, less false sharing and more memory bandwidth.

Tasking extensions. The new tasking extensions being considered are task deep synchronization, dependent tasks, reduction support for tasks, and task-only threads. Task-only threads are threads that do not take part in worksharing constructs, but just wait for tasks to be executed.

Support for Fortran 2003. The Fortran 2003 standard adds many modern computer language features. Having these features in the specification allows users to take advantage of using OpenMP directives to parallelize Fortran 2003 complying programs. This includes interoperability of Fortran and C, which is one of the most popular features in Fortran 2003.

“OpenACC contributes to OpenMP by providing real-world exposure to programming concepts embraced by both groups,” said Duncan Poole, President of the OpenACC standards group. “The founding OpenACC members are all members of the OpenMP Working Group on Accelerators. Even now as OpenACC compilers are released to the market, we look forward to a time when our experiences bring additional validation to the standard we are all developing within the OpenMP process. Developers will benefit from early access to OpenACC tools, and can be assured that these same companies are working to support OpenMP in a future version.”

“This year will be the fifteenth anniversary of OpenMP. Not many parallel languages can say that and we are still growing”, said Michael Wong, CEO of the OpenMP ARB, “OpenMP will be made more robust, and will cover more types of systems.”

Source: OpenMP consortium site

CUDA

CUDA 4.1 offers a trifecta of features to make parallel programing with GPUs easier and faster:

- New LLVM-based compiler delivering instant performance speed-up - Re-designed Visual Profiler with automated performance analysis - Hundreds of new imaging and signal processing functions

CUDA 5 Release Candidate offers:

Eclipse Nsight, Eclipse Edition - Develop, Debug and Optimize… All in one IDE

RDMA for GPUDirect,learn more - Direct communication between GPUs and other PCIe devices

GPU Library Object Linking - Libraries and plug-ins for GPU code

Dynamic Parallelism - Easily accelerate parallel nested loops starting with Tesla K20 Kepler GPUs

Pthreads

If any...

Generals Scientific and Numeric Libraries

CULA

CULA is a set of GPU-accelerated linear algebra libraries utilizing the NVIDIA CUDA parallel computing architecture to dramatically improve the computation speed of sophisticated mathematics. CULA is providing a wide set of LAPACK and BLAS capability. CULA offers: - Supercomputing performance. The CULA libraries are over 10x faster than the competition. - Simplicity. CULA libraries require no GPU programming experience. - Advanced interfaces for usage in C, C++, Fortran, MATLAB, and Python. - Cross platform support. Available for Linux, Windows, and Mac OS X.

CULA consists of two core libraries CULA Dense and CULA Sparse. CULA Dense provides accelerated implementations of the LAPACK and BLAS libraries for dense linear algebra. Contains routines for systems solvers, singular value decompositions, and eigenproblems. CULA Sparse provides tools necessary to rapidly solve large sparse systems using iterative methods. Multiple algorithms, preconditioners, and data storage formats are supported.

CULA is available in a variety of different interfaces to integrate directly into existing code. Programmers can easily call GPU-acclerated CULA from their C/C++, FORTRAN, MATLAB, or Python codes. This can all be done with no GPU programming experience, simply by replacing existing function calls with CULA function calls. CULA takes care of all GPU memory management, but for the more experienced GPU programmers there is also a "device" interface to work with GPU memory directly.

There are both free and commercial versions.

Link: http://www.culatools.com/

Virtual Research Communities Specific Libraries

Personal tools