Webinar from December 4, 2012: Fortran Standard Parallel Programming Features, hosted by Steve Lionel
Fortran programmers have been doing parallel processing for many years using methods outside the Fortran standard such as auto-parallelization, OpenMP* and MPI. Fortran 2008, approved as an international standard in late 2010, brought parallel programming into the language for the first time with, not one, but two language features! In this article I will give a brief overview of these two new features, DO CONCURRENT and coarrays; both supported in Intel Fortran Composer XE.
On October 6, 2011, a webinar was presented on "Getting the Most out of Intel Fortran Studio XE". The webinar description was:
Whether you're developing new Fortran applications using the latest language features, or updating an existing one, you need more than just "a
compiler" to find coding errors and boost performance. Join us for a webinar on Intel's newest developer tool suites: Intel Fortran Studio XE 2011 for Linux, and Intel Fortran Studio XE 2011 for Windows, presented by Steve Lionel of Intel. Oct. 6, 2011 - 2pm EDT
Topics covered will include:
DCT and Quantization are the first two steps in JPEG compression standard. This article demonstrates how DCT and Quantizing stages can be implemented to run faster using Intel® Cilk™ Plus. In order to see the effect of quantization on the image, the output of Quantization phase is passed on to the de-quantizer followed by Inverse DCT and stored as an output image file.
Intel® Cilk™ Plus is an extension to the C and C++ languages to support data and task parallelism. It provides three new keywords to implement task parallelism and Array Notation, simd pragma and Elemental Function to express data parallelism. This article demonstrates how to improve the performance of an Averaging Filter in image processing using Intel® Cilk™ Plus. To demonstrate the performance increase, you will use a program that reads a bitmap RGB image and does averaging with a filter of size 3x3. Averaging filter work
Performance tuning of an existing application is truly a challenge and it depends on a lot of factors like the nature of algorithm the application works on, if the implementation is scalable to take advantage of thread/data parallelism etc. The most logical approach any developer would follow for tuning the performance of an application is to do a dynamic profiling of the application under different workloads, try to analyze the hotspots in that application, and then fine tune them to work best on a given hardware architecture.