Computer architectures designed with high-performance microprocessors are reshaping the IT landscape. Today's software developers must deliver products and services faster with higher quality and performance to stay competitive, but in an environment with unprecedented potential, it's increasingly difficult for application developers to simultaneously handle business logic and performance issues in their code. That's where IBM Power Systems technology steps in, says Susan Yoskin, IBM Rational marketing solution manager. Power Systems are based... [More]
In a previous post I showed how to use the operand syntax of inline asm to eliminate the need for explicit loads and stores in the asm code. I wound up with an asm like this... asm ( "addi %0,%0, 88 \n" : " +r" (x) : ); However, there is a subtle problem with this code that is often overlooked (including by myself) -- the dreaded r0 problem. Certain instructions on Power have special semantics when one of the register input operands is r0. For example, in the case of addi, if the second... [More]
Get the highlights of the new and enhanced features in XL C/C++ Version 12.1,
including support of language features that enable users to port code easily
when moving to IBM Power Systems, as well as improved compilation time at
commonly used optimization levels. This article is for those who have some
experience with previous versions of XL C/C++. Read more .
Check out this recorded webinar by IBM Systems Magazine about Smart Tools on IBM i, AIX, and Linux for Faster Time to Market Get an early look at the
next version of Rational's offerings for Power Systems. New advancements
in compilers and significantly enhanced development tools will give
your organization a competitive advantage! Listen to the replay .
Looking to see and learn about the latest compiler enhancements in XL C/C++ on AIX and Linux. Download a trial. Here is quick recap of some of the highlights of these new compilers: Compliance to ISO programming language standards including C99 and C++2003,
emerging support for C11 and addition support for C++11, the latest standards
for the C and C++ programming languages Support for the OpenMP 3.1 industry specification Compile time performance and scalability improvements Enhancements to the diagnostic reports that can help identify... [More]
Those of us who develop C++ applications for a living, often hit a dilemma when analyzing functional errors. Should I debug my application using a symbolic debugger, or should I just add prints and traces to the code to understand its behavior? Too often developers choose the latter, slowing down the application development cycle. Not only must they recompile parts of the application to pick up these changes, but they need to know ahead of time what data to examine, which is often hard to predict in advance. This effectively creates a long... [More]
Check out all the information about the latest release of XL C for AIX, XL C/C++ for AIX, and XL C/C++ for Linux. You can get a summary of each release by product as well as all the announcement details. See What's new in the release including enhancements to improve application performance and programmer productivity. For all the details about the XL C and XL C/C++ announcements, see these resources. And don't forget our Webinar and Innovate2012 where you will hear lots more about the latest compilers. Webinar: Smart Tools on IBM i, AIX,... [More]
The May 2012 Compiler PTFs for XL C/C++ for AIX, V10.1 are now available at the following links and on Fix Central: May 2012 PTF for XL C for AIX, V10.1 May 2012 PTF for XL C/C++ for AIX, V10.1 Can't find the updates for your compiler? Check out our C/C++ compiler latest update page here .
The basic premise of inline asm is to be able to write assembly code within your C or C++ program (using asm operands to connect the asm code to the parent program), delegate the translation of that assembly to the compiler and/or the system assembler, and consequently have the resulting machine code embedded within your program at the location you specified. The reasons for using inline asm can be many, but one reason can be to utilize special instructions are too new or too novel for either the compiler or assembler to know about. That seems... [More]
The April 2012 Compiler PTFs for XL C/C++ for AIX, V11.1 are now available at the following links and on Fix Central: April 2012 PTF for XL C for AIX, V11.1 April 2012 PTF for XL C/C++ for AIX, V11.1 Can't find the updates for your compiler? Check out our C/C++ compiler latest update page here .
This posting concerns outputs which are assigned registers that may overlap with inputs. Consider this inline asm that uses addc and adde in order to accomplish 128 bit arithmetic... asm ("addc %0, %2, %3 \n" "adde %1, %4, %5 \n" : "=r"(xl),"=r"(xu) : "r"(yl),"r"(zl),"r"(yu),"r"(zu)); In this example all the inputs and outputs are unsigned longs. Unfortunately, although it looks pretty straightforward, there is a potentially... [More]
The April 2012 PTF for XL C/C++ Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0 is now available at the following links and on Fix Central : April 2012 Update for XL C/C++ Advanced Edition for Blue Gene/P, V9.0 Can't find the updates for your compilers? Check out our C/C++ compilers latest updates page here .
If you use zOS and applications running zOS as frequent as I do, you probably have defined best-scenarios possible to perform repeating tasks [as I have]. One of the things that I often have to do on a daily basis is to investigate and debug application errors and often the first lead I have into what the root cause maybe is the output and/or error messages. Just in case some of you may not know about this online facility that lets you look up explanations for the IBM messages, as well as for some system abends and codes, I provide a link... [More]
Hi. This is the first posting in what I hope to be a continuing blog on tips and tricks for inline assembly – a.k.a. asm – which is a way of inserting assembly language into your C and C++ programs. In this blog I won’t be covering basic syntax and semantics (you can get that by consulting a DeveloperWorks article – link at the end), but rather will focus on some of the trickier aspects of using inline asm in your programs. My primary focus will be on the Power architecture. Today I’ll start with tips for input and output operands. Imagine... [More]
No new Standard before 2017. That is the word from the C++ Standard meeting in Feb 2012, the first meeting since the ratification of C++11 after the Indiana meeting in August 2011. It must be the location, because it had over 60 attendees. We seem to have one of these every five years courtesy of PlumHall, although this one was paid for by Bloomberg. Thank you, John and Tom. The first and last thing on everyone's mind was when will the next Standard be? Will it be another 10 years? As this meeting included the reopening of the Evolution... [More]
To help you create more innovative products and services, faster than the competition, at lower cost and risk, IBM Rational helps you transform software design, development, and delivery. Innovate 2012, sponsored by Rational, is the event for software and systems innovation that is focused on helping you transform software delivery to accelerate better business outcomes.. We hope you will join us for Innovate 2012, in Orlando, Florida, June 3-7, 2012. Top 5 Reasons to Attend include: • Over 400 technical sessions across 23 tracks focused on... [More]
Mission-critical applications are the lifeblood for most large enterprises, which often rely on mainframes for data and transaction processing. While these systems are crucial for business operations, many organizations perceive them as a costly burden keeping enterprises from innovating and remaining competitive. Nothing could be further from the truth. Legacy applications contain a wealth of knowledge and logic that can be leveraged to push businesses into surprising new directions. The problem many IT departments face, though, is learning... [More]
The XL C METAL compiler option generates code that does not require access to the Language Environment support at run time. Instead, the METAL option provides C-language extensions that allow you to specify assembly statements that call system services directly. Using these language extensions, you can provide almost any assembly macro, and your own function prologs and epilogs, to be embedded in the generated HLASM source file. When you understand how the METAL-generated code uses MVS linkage conventions to interact with HLASM code, you can... [More]
In late January, I hosted the OpenMP January 2012 Face-2-Face (F2F) meeting in San Francisco at the Serrano hotel attended by 24 experts. In the words of one expert, it was one of the most productive meeting we have had in a long time. In this meeting, we increased the urgency to drive towards OpenMP 4.0 with subgroups to discuss affinity, taskgroups, accelerators and high level vector language, Fortran 2003 integration, and error model. Currently, the Affinity subgroup is lead by Christian Terboven, Task subgroup is lead by Federico... [More]
At SC11 in Seattle, a large IBM team arrived to help showcase IBM's
effort to support High Performance Computing. A team will help with
talking to the Scientific Computing Users Group called SciComp or
SP-SXXL. I will be mostly responsible for looking after OpenMP.
OpenMP has a booth where we hosted many questions from users and discussed future. we have been a presence in
SC for many years and frankly we almost don't have to spend the
large sum of money to be there to remind people of our deep connection
with High , but we... [More]