Unleash the performance of Linux on Power
This Friday, December 12, 2014, IBM releases the XL C/C++ V13.1.1 compilers for the little endian Linux distributions on IBM Power Systems. Linux on Power provides open technology, performance, portability and scalability . IBM XL compilers are the key to unleash the performance of your C/C++ applications. I rejoined the XL C/C++ compiler team early this year after spending over a decade working on the IBM Java Just-In-Time compiler. IBM's JIT compiler is built using the XL C/C++ compiler because it provides an 18% performance... [More]
|
Overview of C/C++ support in Rational Developer for Power
You may have heard about Rational Developer for Power Systems Software , which now has support for development of COBOL on AIX, C/C++ on AIX and Power Linux as well as IBM i application development. It is easy to kick the tires by downloading the trial from here .
But if you only have 5 minutes just check out the YouTube video below and be amazed at the C/C++ functionality now available for AIX and Linux developers.
For more information go to the product web site at http://www-01.ibm.com/software/rational/products/rdp/ .
Tags:  rational rdpower linux debugger aix |
October 2010 PTFs for XL C and XL C/C++ for AIX, V10.1 are now live!
The following PTFs are now available: October 2010 PTF for XL C for AIX, V10.1 October 2010 PTF for XL C/C++ for AIX, V10.1 October 2010 PTF for XL C/C++ for AIX, V10.1 Runtime In addition to defect fixes, these PTFs also added support for AIX7.1 and the URT functionality! Click on the links to find out more details and download them!
Tags:  c/c++ ptf v10.1 updates |
IBM Power8 sets new STAC public record by using XL C/C++ Compiler!
If you’ve been waiting for a formal evaluation of the IBM Power8 architecture on common financial workloads, then you need to read this! The certified STAC report, which was published in March, marked the first time the IBM Power8 architecture has gone through STAC-A2 testing. The STAC Pack used IBM XL , a suite for C/C++ developers that includes the C++ Compiler and the Mathematical Acceleration Subsystem libraries (MASS), as well as the Engineering and Scientific Subroutine Library (ESSL). Please click here to get... [More]
|
Attention! "__ptr32" may not mean what you think it does
z/OS XL C/C++ compiler supports the "__ptr32" type qualifier to facilitate porting structures with pointer members from 32-bit mode to 64-bit mode. However, if you fail to use it in the right way, it cause unexpected results at run time that are hard to debug. Let's take the following code as an example, and think about why we can't get the expected result. > cat test.C #define PTR_TYPE char * __ptr32 int main(){ PTR_TYPE p = (PTR_TYPE)(~0); PTR_TYPE * __ptr32 addr = &p; if((((unsigned int)(*addr)) &... [More]
Tags:  __ptr32 z/os |
XL C/C++ and XL Fortran for Linux evaluation versions now hosted on public apt-get and zypper repositories!
Now there’s an even easier way to get you started with your evaluation of the latest XL C/C++ (V13.1.1) and XL Fortran (V15.1.1) for Linux compilers for the little endian Linux distributions on Power Systems (Ubuntu 14.04, Ubuntu 14.10, and SLES 12). We are now hosting the latest evaluation versions on public apt-get and zypper repositories. You can find everything that you need to get started at http://public.dhe.ibm.com/software/server/POWER/Linux/xl-compiler/eval/ppc64le/
|
C++ Templates What is a variadic template function?
The Variadic Template Function
The latest language standard has further complicated C++ by adding variadic templates. One problem I had in my attempt to understand this new feature was the lack of simple examples showing how it worked. Here's my attempt to show some of the basics of a variadic template function.
template <class ...A> int func(A... arg)
{
return sizeof...(arg);
}
int main(void)
{
return func(1,2,3,4,5,6);
}
First the basic vocabulary: A template parameter can now be a template parameter pack... [More]
|
Do you compile you application without compiler optimization? You need to read this!
I got
curious about what the real speedup is
from using -O2, so I did a few
runs on an old machine we have sitting
around in our shop. I used XLC
V11.1 and XLF V13.1 to measure the old
SPEC CPU2000 benchmark suite. I did
two measurements: one with -O2 and one
without optimization. The results are
presented below in a table and they
confirm what I suspected – Code
compiled with -O2 consistently performs 2-3
times faster than the same code compiled
without optimization! ... [More]
Tags:  optimization cppcafe |
The View (or trip report) from the Nov 2010 C++ Standard meeting
In this meeting, Bjarne Stroustrup opined that "The Atomics have become unstable at Fermilab".. Of course, Fermilab is a wonderful place, where one of the first sub-atomic particle, the top-quark was discovered. The architecture of this facility stands out uniquely with pi-shaped main building, telephone poles, and Archimedean spiral pumping stations. Much of the facility is opened to public visit. The main mission of the Lab is one of keen interest to our future and that is the search for Dark matter, Dark Energy which of course can... [More]
Tags:  c++0x fermilab c++ standard |
An Informal Introduction to the AIX tprof Utility
The AIX tprof utility is a valuable tool for optimization which provides features to identify performance bottlenecks within programs and to aid in analysis of performance-critical code. The IBM XL C/C++ Compiler provides features to aid in the use of tprof for performance analysis of programs. This document provides a brief introduction to select features of the tprof utility, with focus on features which interact with XL compiler listing files to allow performance analysis at the source-line or instruction level. In its most simple usage,... [More]
Tags:  tools optimization profiling performance |
[Video] Developing system programs and high-performance applications with Metal C
Have you ever used Metal C in the z/OS XL C/C++ compiler? Are you looking for the features Metal C provides? Do you want to know how Metal C can help with your business? Check out the video and you will learn more about Metal C!
|
IBM Doc Buddy V2 - where you connect with IBM
Would you like to receive IBM Z product updates and connect with IBM mainframe experts? Do you look up IBM Z error messages to resolve technical issues? Get the best of both worlds with our new Doc Buddy features. Aggregating content for IBM Z products IBM Doc Buddy V1 enables you to search both online and offline for messages and codes issued from IBM Z products. With over 4000 users, IBM Doc Buddy is one of the most frequently-used mobile apps to help IBM Z customers tackle the technical issues they encounter. We are pleased to announce a new... [More]
|
Bridging the 31/64 bit gap with Metal C
Note: Language Environment, LE, doesn't permit mixing of 64bit and 31bit runtime environments. Metal C runs in an environment independent of LE. There are use cases that requires calls to be made to a module in a different addressing mode. Say, an application is running in a 64-bit environment but needs to call out to an application that is compiled and available only 31-bit. There are also cases where from a 31-bit mode application a 64-bit mode application need to be called. Metal C can bridge this gap. We... [More]
|
Usability enhancements in Metal C in the latest compiler release continued
After reading the previous blog on this topic, in this blog I expand on the Metal C function descriptor topic. The z/OS V2.3 Metal C Programming Guide , as well as z/OS V2.3 Language Referenc provide information on this new Metal C feature. Here, I try to build an example based on the description provided in these two books. A function pointer that is declared with __fdptr keyowrd point to a Metal C function descriptor, which is an internal control block and holds two pieces of... [More]
Tags:  xlc descriptor metal zos metalc __fdptr function v2r3 |
IBM Doc Buddy V1.3.0 available - online search supported!
IBM Doc Buddy V1.3.0 is now available for download in Apple App Store and Google Play! Once you install IBM Doc Buddy on your smart phone or tablet, you can find the explanations for error messages issued by z Systems products within seconds. This release includes major search enhancements: The app now supports online search in addition to offline search. You can get instant search results if you are connected to the Internet. Online search is enabled by default in Settings. Thus, IBM Doc Buddy can be a perfect replacement for... [More]
|
IBM Doc Buddy - Instant help with z/OS XL C/C++ error messages right from your smart phone!
Have you ever spent time looking for the documentation to solve an error you encountered when using z/OS XL C/C++? If so, IBM Doc Buddy will be the right choice for you. With IBM Doc Buddy, you can easily find the solution to an error message on your smart phone. IBM Doc Buddy is a free mobile application that retrieves support documentation for z products. It reduces the time you spend in resolving problems and improves your information experience. A key strength of IBM Doc Buddy is that it enables you to look up message... [More]
Tags:  tpf guide messages codes zvm xlc xlc++ ims cics diagnosis zos |
Introduction to Variable Templates of C++14
The variable template, which comes from N3651, is one of the major proposals in Standard C++14. The main purpose of the variable template is to simplify definitions and uses of parameterized constants. [1][2] Rules before C++14 do not allow declaring a variable using a template declaration. There are workarounds for this problem before C++14, but they are either redundant or complicated. The first workaround is constexpr static data members of class templates as shown in Code 1. However, duplicate declarations are required: one inside the class... [More]
|
What XL compiler options should I use to optimize C++ code?
What XL compiler options should I use to optimize C++ code? IBM recently released Version 13.1.2 of the XL C/C++ compiler on Linux, with improved performance for POWER8. With the new focus on POWER Linux, IBM has embraced Clang technology, beginning with XL C/C++ V13.1.1. This strategy of embracing open source technology gives you a seamless migration path to POWER Linux systems. However, one challenge is that the XL C/C++ compiler comes with a wide range of optimization options. Should you use the default optimization options? Under what... [More]
|
OpenPOWER ABI will bring you more performance gains on function calls
OpenPOWER ABI will bring you more performance gains on function calls, you need to see this article. Improve the performance of function calls with OpenPOWER ABI Anatomy of function calls with OpenPOWER ABI supplement This article is to explain what OpenPOWER application binary interface (ABI) introduces to improve performance of function call. Different from the 64-bit IBM PowerPC® ELF ABI Supplement 1.9 (ELF ABI v1), OpenPOWER ABI gets rid of function descriptor and doesn't require callers to initialize environment any more. Aligned... [More]
|
Accelerating performance with inline assembly using IBM XL C/C++ compiler on IBM z Systems
IBM's new XL C/C++ compiler for Linux on z Systems Version 1.1, released in 2015, enables support for incorporating user's assembler codes directly into C/C++ programs (inline assembly). Besides the ability to generate highly optimized codes, maximizing hardware utilization, the new compiler provides advanced users with greater flexibility to access instructions at chip level. With inline assembly, software engineers are able to handcraft assembler codes for the most performance-sensitive parts of C/C++ programs. This will further... [More]
Tags:  zsystems assembly z13 inlineasm xlc++ asm acceleration xlc z performance |
Are you migrating your application from big endian to little endian? You should read this!
When migrating your application from big endian to little endian on the IBM POWER8 platform, there are a number of differences that need to be considered. This can range from vectors, storage association between items of different sizes, long doubles, complex numbers, and serialization. The IBM XL C/C++ for little endian Linux on Power Systems contains new options and built-in functions to help with your migration. Here's a link to an article that will help you understand what to look out for and provide suggestions on... [More]
Tags:  xlc power8 migration linux power compilers |
New C/C++ compiler for Linux on z Systems
Today, IBM announced a brand new C/C++ compiler for Linux on z Systems. Built on top of the advanced optimization technology already in use by the Java and Enterprise COBOL compilers, the XL C/C++ for Linux on z Systems compiler generate highly optimized code to significantly improve runtime performance of applications. It leverages the Clang open source infrastructure for a portion of the compiler front end resulting in a high level of source compatibility with GCC and includes partial support of the latest C11 and C++11 language standards. In... [More]
Tags:  z13 c/c++ zlinux |
Documentation for XL compilers live on IBM Knowledge Center
In June 2014, documentation for XL C/C++ for AIX and Linux, V13.1 was published successfully on IBM Knowledge Center, instead of information center. Prior to IBM Knowledge Center, IBM product documentation was hosted on various information center servers and maintained separately by various product teams. IBM Knowledge Center provides a central repository for all IBM product documentation. With IBM Knowledge Center, you can easily perform the following tasks with product documentation: 1. Read and search documentation by IBM product... [More]
|
Use inlining compiler options and function attributes correctly
The XL C and XL C/C++ compilers support the following compiler options and function attributes that control function inlining. The noinline function attribute (IBM extension): prevents the function to which it is applied from being inlined. The always_inline function attribute (IBM extension): instructs the compiler to inline a function. The -qinline compiler option: attempts to inline functions instead of generating calls to those functions, for improved performance. The -qinline+< function_name > option: specifies that the named... [More]
Tags:  inlining |
IBM Compiler Team at SuperComputing 2013
The SuperComputing Conference has served as the crossroads for the entire HPC/Technical Computing community for 25 years. The conference connects with the latest developments through the diverse programs: technical programs, exhibit hall, and HPC Interconnections . During the SC13 silver anniversary celebration this year, IBM was honored to present computer artifacts and a graphical timeline spanning over 67 years of HPC innovation. The IBM Compiler Team had two of its members in attendance: Yaoqing Gao, Rational STSM in... [More]
|
SC13 and OpenMP
I attended Supercomputing in my third year as OpenMP CEO to both represent IBM and OpenMP. This was a big year for us as we closed with many milestones in what I call a Significant Paradigm shift in Parallelism. The most significant milestone was that t he OpenMP Consortium has released OpenMP 4.0 in 2013 with new parallelism features that are productive, portable, and performant across C, C++, and Fortran. OpenMP 4.0 contains significant additions for accelerators, standardized for a broad set of architectures, and an industry-first support... [More]
|
C++11: The decltype specifier – Part III
The usage and advantage of the decltype specifier are introduced in Part I. For details, see https://www.ibm.com/developerworks/community/blogs/5894415f-be62-4bc0-81c5-3956e82276f3/entry/c_11_the_decltype_specifier_part_i?lang=en The deduction rules of decltype are introduced in Part II. For details, see https://www.ibm.com/developerworks/community/blogs/5894415f-be62-4bc0-81c5-3956e82276f3/entry/c_11_the_decltype_specifier_part_ii?lang=en In this section, I will state the inheritance of cv-qualifiers and the disposal of redundant... [More]
|
The View from the C++ Standard meeting September 2013 Part 2 of 2.
In Part 1 of this C++ Standard September, 2013 meeting trip report, I wanted to mostly go over the core, library issues that affects C++14 and are urgent for the new Standard to emerge. What some people forget is that while this drive for C++14 is happening, there are still some parts of the Committee working on large and small features beyond C++14. This part will describe the many future feature proposals. Many of these proposals may only get full air time during the plenary session and these plenary sessions are getting longer and... [More]
Tags:  c++ sg standard c++14 |
XL C/C++ for Linux on System z Managed Beta Announcement
We are pleased to announce the Managed Beta Program for IBM®XL C/C++ for Linux on System z. This Beta Program is separated into two stages, namely, features and compatibility, and, quality and performance. Clients participating in the Managed Beta program will join developers and product management for education and discussions. Participants will evaluate code and have access to a private website. The beta website will include a tool for reporting problems and feature requests. There will also be a forum for questions and... [More]
Tags:  mainframe systemz zlinux |
How to determine the installed XL C/C++ for AIX compiler version?
Having trouble identifying the correct compiler version installed on your AIX machine? There are a couple of ways such as using the -qversion compiler option or lslpp for the correct compiler filesets. Feel free to checkout the technote below for more information. How to determine the installed XL C/C++ for AIX compiler version? Please let me know if you find this useful.
|