Allinea Software Blog

Wed August 3, 2016 by Mark O'Connor

In episode one we optimized Torch A3C performance on the new Intel Xeon Phi (Knight's Landing) CPU. Allinea MAP and Performance Reports identified bottlenecks in our framework and sped up model training by 7x.

To get further gains we found areas of the Torch framework that could benefit from optimization, but that's getting to a level of time investment that most of us don't have.

Fortunately there's another way to train models faster – add more hardware! Vishnu, Siegel and Daily at the Pacific Northwest National Laboratory published a paper in which they scaled TensorFlow over multiple nodes using the high-performance MPI library rather than TensorFlow's RPC work sharing mechanism.

Not everybody has access to an...

Thu July 21, 2016 by David Lecomber

The Manufacturing industry relies on high performance software for improving the speed and efficiency with which it brings new or improved products to market.

Tue July 5, 2016 by Mark O'Connor

In February, a new paper from Google's DeepMind team appeared on arxiv. This one was interesting – they showed dramatically improved performance and training time of their Atari-playing Deep Q-Learning network. The training speedup was so great that 16 CPU cores outperformed their previous GPU results by an order of magnitude.

Thu April 21, 2016 by Mark O'Connor

Allinea MAP isn't just a lightweight profiler to help you optimize your code. It also lets you add your own metrics with just a couple of lines of code. To show how this works, I'm going to add PAPI's instructions-per-cycle metric to MAP.

Sat March 5, 2016 by Development Team

For Fortran and F90 debugging is - like all languages - inevitable. We look at debugging tips for Fortran and F90 developers to show why and how to use a debugger for some typical bugs.

Do it the right way, not the write way

The F90 and Fortran write (or print) statement for debugging is wired into the brain for many developers - but it just doesn’t do the job. Using write or print is iterative.

Mon February 29, 2016 by Esther Marnoch, Allinea

Download Our 6 Key Steps For Getting Ready For Intel's Knights Landing.

Tue December 22, 2015 by The Development Team
What are dangling pointers?

Dangling pointers are pointers whose memory has been freed but which have not been set to null (or 0x0). This allows a particularly tricky class of bug to arise, because it is often possible for subsequent code to keep on using the dangling pointer and to keep on getting valid-looking data – until suddenly that memory is repurposed for something else!