james_reinders
Software Programmer

A Look at Intel’s 2018 Software Development Tools

opinion
Jun 8, 20174 mins

istock 539836016
Credit: istock

I signed up for Intel’s annual public beta (you can too by registering for it), and now I can share some of what I’ve found in the latest version of the software development tools. These are serious tools for Python, C, C++, and Fortran developers who are optimization-minded, and I couldn’t pass up the opportunity to try them out—for free!

Intel has made signing up easy, and this entitles you to download and install fully functional versions of its tools.  I’ve downloaded and installed the tools on my Windows 10 machine, my iMac running the latest (Sierra) macOS, and three different Linux boxes (running SUSE, Ubuntu, and Linbuntu). So far, everything has worked flawlessly. I’ve been mostly writing programs using Intel Threading Building Blocks (TBB) and testing it on each system. My code is highly portable, and I love having the same tools on each system.

What’s new: More accelerated Python

I wrote about earlier efforts to accelerate Python in “How Does a 20X Speed-Up in Python Grab You?” This is worth revisiting and trying my examples—and your own code—on the Python in the beta. Intel has expanded acceleration into more and more functions within popular Python libraries, as well as support for Python in tools such as VTune. VTune has a feature called “Memory Consumption Analysis” that supports Python in addition to its traditional support of compiled code.

C++2017, Fortran 2008, Fortran 2015, OpenMP 5.0

Intel is following draft standards closely, including support for standards that aren’t yet official (the standards themselves are still in the draft phase): C++2017, Fortran 2015, and OpenMP 5.0. Intel has also completed all Fortran 2008 features. One of the most exciting features in C++2017 is the effort to introduce parallelism support into STL. I’ve been exploring some of the Parallel STL support for C++2017. STL templates, such as transform, can now take an optional execution policy as their first parameter. Using “par_unseq,” enables an STL template such as transform to operate on elements in parallel using multithreading and vectorization both. Very cool new things to try out!

VTune can profile Docker containers

Intel has also extended its VTune Amplifier tool with support for profiling of applications running in Docker containers. Taking VTune into this space helps maintain VTune’s reputation as a very serious analysis tool for gaining insights into what is happening on a computer and how performance is affected. The popularity of virtual machines and clouds has muddied the waters when looking at performance, so these extensions are very helpful.

Application Performance Snapshot

I discussed a prior, less integrated version of Application Performance Snapshots in my article “What’s a Performance Snapshot? (And Why Should I Care?).” The 2018-beta version of Application Performance Snapshot further unifies analysis of MPI (Intel, MPICH, or Cray versions) with application data enabling the exploration of richer metrics to understand computation efficiency: MPI and OpenMP parallelism, Memory Stalls, FPU utilization, and I/O efficiency with recommendations on further in-depth analysis.

More VTune roofline analysis

I introduced an earlier version of this exciting concept in my article “Are We Done Tuning Our Application Yet? Roofline Analysis Helps Finds Useful Answers.” You’ll find that the beta extends this idea beyond what excited me about it previously.

Accelerated Python, C++, Fortran, and Parallel Studio

The full set of beta options (all available to download) are:

  • Linux, macOS, and Windows versions of Intel Distribution for Python Beta
  • Linux or Windows versions of Intel Parallel Studio XE (compiler, libraries, analysis tools, etc.)
  • macOS version of the C++ compiler (with libraries including MKL)
  • macOS version of the Fortran compiler (with libraries including MKL)
  • the full Documentation set (downloadable as an alternative to “on the web”)

Download links and training

Links that are useful for following up on this article:

Click here to download your free 30-day trial of Intel Parallel Studio XE

james_reinders
Software Programmer

James Reinders is a software programmer with a passion for Parallel Programming and Parallel Computer Architecture. He has contributed to the development of some of the world’s fastest computers, and the software tools that make that performance accessible for programmers. James has shared this passion in classes, webinars, articles and has authored eight books for software developers. James enjoyed 10,001 days working at Intel, and now continues to share his passion to help others “Think Parallel.”

More from this author