
BoostCon 2010 Trip Report
Hi, all. I came back from BoostCon2010: http://www.boostcon.com/program#schedule where I delivered three talks and participated in a panel discussion on Transactional Memory, along with such luminaries as Maurice Herlihy (the father of TM), Mark Moir (Sun), and Tatiana Shpeisman, with whom I have worked with for 2 years on the Draft Specification for C++ Transactional Memory. I gave an update of C++0x, outlining the new schedule for a Final Committee Draft that was voted in at Pittsburgh: http://www.filetolink.com/a33a3b47 The talks on C+0x... [More]
Tags:  boostcon concurrency amino cppcafe tm c++0x c++ 2010 |
MASS v6.0 -- High performance math libraries for POWER7
Mathematical Acceleration Subsystem (MASS) Version 6.0 for AIX has been released. This high performance suite of elementary and special mathematical functions contains two new libraries tuned for the IBM POWER7 processor, and exploiting the POWER7 VSX SIMD instruction set. MASS v6.0 offers performance on POWER7 of up to 260 times that of the system math library libm, and up to 4 times that of previous versions of MASS. MASS v6.0 ships with the IBM XL C/C++ for AIX v11.1 and XL Fortran for AIX v13.1 compilers, which provide for both explicit... [More]
Tags:  cppcafe elementary_functions mass scientific numerical performance simd vector library |
MASS auto-vectorization paper now on developerWorks
If your applications call mathematical functions such as sin, cos, exp, log, etc. and you are interested in maximizing performance with minimum effort, here is something that will interest you! My colleague Daniel Zabawa and I have written a paper, "How to improve the performance of programs calling mathematical functions -- taking advantage of IBM XL C/C++ or XL Fortran compiler auto-vectorization". Our paper introduces the IBM MASS high-performance mathematical libraries, and demonstrates how to benefit from them — without the need for... [More]
Tags:  performance numerical vectorization autovecgtorization simd hpc vector scientific cppcafe elementary_functions library mass |
XL compilers and Parallel Environment
There are varieties of tools that work with the IBM XL compilers. Some help productivity in the development phase (IBM debugger, RDp), some help exploit the architecture characteristics (compiler report) and some help utilize the hardware. The IBM Parallel Environment program product (PE) is a distributed memory message passing system supported on AIX and Linux. This is a separate IBM product. For detail information, refer to http://www-03.ibm.com/systems/software/parallel/index.html . PE is designed for developing and executing parallel... [More]
Tags:  fortran c/c++ cppcafe parallel |
The pre-birth of the C++0x Standard.
As of March 26, a Final Committee Draft (FCD) has been sent to the ISO office. This contains all the updates from the last meeting in March, and addresses all the issues from the comments from CD1 from 2008. This will now be released for public comment until July 26, 2010 at which point we will spend the next 2-3 meetings addressing those comments. Comments to address defects are allowed at this stage, but not comments asking for new features. This is a key stage in the C++0x Standard evolution to a final ratified Standard. If this stays on... [More]
Tags:  cppcafe standard fcd c++0x |
How can inline threshold size help your application execution time
Which option combination do you think yields a faster execution? A. -O2 –qinline B. -O2 –qnoinline By specifying –qinline user is asking the compiler to inline functions that meets the criteria of inlining threshold and limit size: for the z platform the default value for the relative size of the function to be inlined is 100 ACUs and the maximum relative size a function can grow before inliner stops inlining more is 1000 ACUs . While inlining eliminates the linkage overhead and provides a larger code to the compiler to be optimized, its... [More]
Tags:  cppcafe performance threshold limit zos inlining |
The View (or trip report) from the Mar 2010 C++ Standard meeting
All, an unprecedented meeting indeed. At this meeting in Pittsburgh, on March 13, 2010, we voted to dispatch a Final Committee Draft (FCD) according to this motion: Motion 1 Move we request the Convener to advance the Working Paper as amended by the foregoing motions to Final Committee Draft (FCD) Status, forward that draft to SC22 for FCD Ballot, and appoint a review committee consisting of Steve Adamczyk and Howard Hinnant to approve the Project Editor's updates to the Working Paper. What this means is that this is the accumulated integrated... [More]
Tags:  fcd ratification cppcafe standard c++ |
The March 8-13 C++ Standard meeting in Pittsburgh
All, I have been wrong in not publishing for a long time. It reflects a particularly busy time for the C++ Standard. The reason is because we are planning to vote out a Final Committee Draft (FCD) at this meeting. This is a deviation from our original plan of issuing a second Beta with CD2. The new plan can effectively put us in a position to publish a ratified Standard by 2012, instead of another year later. This acceleration in plan is because of several things. 1. All the subcommittee chairs (core, library, evolution, concurrency) have... [More]
Tags:  fcd cppcafe standard ratification c++ |
A few call for participations on IWOMP and BoostCon 2010 conferences
Its a special time of the year in more then one way. In addition to getting together with your family and friends, it is also time to consider attending/leading sessions or writing papers, in several parallel programming conferences. IWOMP 2010 is the premier conference for OpenMP and shared memory parallelism on C, C++ and Fortran. It usually consists of user tutorials, paper presentations on what is coming next for OpenMP, and current ongoing research in shared memory parallelism, as well tools presentations.... [More]
Tags:  cppcafe memory iwomp 2010 boostcon transactional |
New System z Compiler Product Announcements
We have recently announced the following 3 new compiler products on System z: Enterprise COBOL for z/OS v4.2 (GA: Aug. 28, 2009) http://www.ibm.com/software/awdtools/cobol Product Highlights: Improved support for processing of XML documents Enable validation of XML document against a schema while it processed by the COBOL application Support offloading of XML parsing to zAAP specialty processors Provide significant performance improvement when using z/OS XML System Services parser Improved usability Underscore now supported in user-defined... [More]
Tags:  z/os cobol c/c++ cppcafe pl/i |
To derprecate or not deprecate, that is the question.
Standards love to add things. They remove very little, but they do like to deprecate. This post will describe a collection of things that is heading that way, or not heading that way in C++ 0x. In my posting on Intention to deprecate trigraphs in the next C++ Standard , we successfully demonstrated that much of the non-English speaking world will still need to rely on trigraphs as a way to get to UCN through "\" which may be inaccessible in some codepages. So we would object to deprecating it without an alternative. In the last meeting in Santa... [More]
Tags:  cppcafe specification register c++ trigraph template exception standard exported deprecation |
The View (or trip report) from the Oct 2009 C++ Standard meeting Part 2
The Library side brought about some of the most interesting changes. I already discussed the key discussions with respect to unifying the Asynchronous futures proposal in The View (or trip report) from the Oct 2009 C++ Standard meeting . This resulted in a paper which will be published in the upcoming mailing (in about a week from now), which will show the approach on Asynchronous Call A Simple Asynchronous Call . The key changes there were: A restoration of the variadic thread and async functions. This restoration is a consequence of analysis... [More]
Tags:  cruz cppcafe standard library c++ santa |
The View (or trip report) from the Oct 2009 C Standard meeting
This is the meeting that closes on all new features for the upcoming C1X Standard (with only a few minor known exceptions) In this meeting, we processed a number of key issues. We incorporated a few additional details to the memory model and concurrency proposals taken from C++ Standardization. We moved zero-initialization for thread locals from 5.1.2p1 to integrate with 6.7.8p10 One proposal removed gets() from the standard. This has been a problematic function, and was made obsolete in TC3. The function gets() has been problematic because of... [More]
Tags:  attributes gets standard _align c alignment cppcafe |
The View (or trip report) from the Oct 2009 C++ Standard meeting
Santa Cruz is a wonderful location for us to decide weighty matters such as how best to ship a C++ Standard with the overloaded number of issues. Normally a surfing town as I am told, I have not had a chance to even make it to the ocean shoreline as yet even though I am only mere blocks from it. So busy we are that let me waste no more time and recap. 1. P.J. Plauger (or Bill Plauger) has been the convener of the C++ meeting. There was an attempt to stop processing any new features in order to facilitate our promised shipping date for the... [More]
Tags:  formal c++ motion santa core standard cppcafe cruz |
C Standard meeting in Santa Cruz Oct 26-30
Hi all, my name is Michael Wong. I will be attending the next C Standard meeting in Santa Cruz on Oct 26-30, representing IBM and Canada. This promises to be a critical meeting as it is where the C Committee has nominated as the cutoff for adding features to the upcoming C1X (the code name for the next release of C). One of the paper is the IBM comment on the Bounds Checking Library: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1388.pdf where we have made responses as follows: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n1389.pdf IBM... [More]
Tags:  vmx mmx opencl vsx cppcafe altivec sse2 vector c standard |
C++ Standard Meeting in Santa Cruz on Oct 19-24
I am attending the C++ Standard meeting in Santa Cruz. We have a number of issues of interest to us. SCARY iterators is a way to improve portability invented by our IBM Watson Lab and collaborated on with testing using the xlC++ compiler. It also can give significant performance gains, especially in Blue Gene software: http://www.open-std.org/jtc1/sc22/wg21/docs/papers/2009/n2913.pdf The other issue of interest is continuing discussion on resolution to the Trigraph deprecation issue. Although the idea of deprecation was rejected in Frankfurt,... [More]
Tags:  standard cppcafe santa cruz c++ |
Demistifying zOS Include files
This is my first post on our C/C++ Cafe that has been long in coming. If you are like me, then you are a new zOS programmer. The learning ride has been quite turbulent and there are ways to go yet. If you are a devoted programmer then you feel quiet excitement of your new program almost working, tempered by the chance of another large manual being 'thrown' at you. zOS is one of those products that has too much of a good thing, that is there is a LOT of documentation. This fact very quickly becomes an advantage as one gains more experience. No... [More]
Tags:  cppcafe compiler-option c++ zos c z/os |
MASS high-performance mathematical function libraries
Hello -- I'm the technical leader for the IBM MASS math libraries. MASS stands for Mathematical Acceleration Subsystem, and consists of libraries of mathematical functions specifically tuned for optimum performance on various computing platforms. MASS was originally launched by IBM in 1995, and has been continuously improved and expanded since then. I've been involved with MASS since 2002. There are currently versions of MASS for all the POWER processors, running AIX or Linux operating systems. There are also versions for BlueGene/L and... [More]
Tags:  vector scalar cppcafe elementary_functions performance scientific hpc simd numerical library mass |
IBM's Alphaworks Software Transactional Memory Compiler
Transactional Memory (TM) is a high level abstraction for supporting a safe mutable shared state, such that the user does not have to worry about the low-level details of locking and sharing of global resources. It is basically a class of optimistic speculation techniques such that groups of memory operations are bundled as an atomic operation such that it can resolves the problems with locks, possibly support composability. The basic idea is to move your group of atomic operations through, assuming that it will be successful, and only rollback... [More]
Tags:  blocks building transactional_memory amino cppcafe stm c/c++ concurrency |
Draft Specification of Transactional Language Constructs for C++
Hello all, over the last year, a group of Transactional Memory experts from Sun, Intel, and IBM have been getting together every Friday to discuss how to create a uniform syntax for Transactional Memory. We are happy to release the first version of the Draft Specification of Transactional Language Constructs for C++. This specification is the result of a joint work by a group of people from Intel, IBM and Sun, and is based on our experience working with transactional language constructs. We would like to encourage people to implement this... [More]
Tags:  c++ cppcafe memory transacational |