Fortran Program Development with Visual Studio* 2005 ~ Use Intel Visual Fortran with Visual Studio* ~

Similar documents
INTEL PARALLEL STUDIO XE EVALUATION GUIDE

Elemental functions: Writing data-parallel code in C/C++ using Intel Cilk Plus

Mathematical Libraries on JUQUEEN. JSC Training Course

Multi-Threading Performance on Commodity Multi-Core Processors

1 Bull, 2011 Bull Extreme Computing

Towards OpenMP Support in LLVM

All ju The State of Software Development Today: A Parallel View. June 2012

Parallel Computing. Parallel shared memory computing with OpenMP

Parallel Computing. Shared memory parallel programming with OpenMP

Multicore Parallel Computing with OpenMP

Introducing PgOpenCL A New PostgreSQL Procedural Language Unlocking the Power of the GPU! By Tim Child

Parallel Programming Survey

Scalability evaluation of barrier algorithms for OpenMP

Improving System Scalability of OpenMP Applications Using Large Page Support

Performance Evaluation of NAS Parallel Benchmarks on Intel Xeon Phi

How To Write A Parallel Computer Program

INTEL PARALLEL STUDIO EVALUATION GUIDE. Intel Cilk Plus: A Simple Path to Parallelism

Parallelization of video compressing with FFmpeg and OpenMP in supercomputing environment

The ROI from Optimizing Software Performance with Intel Parallel Studio XE

Mathematical Libraries and Application Software on JUROPA and JUQUEEN

Multi-core Programming System Overview

Debugging in Heterogeneous Environments with TotalView. ECMWF HPC Workshop 30 th October 2014

supercomputing. simplified.

Multi-core architectures. Jernej Barbic , Spring 2007 May 3, 2007

Experiences with HPC on Windows

JUROPA Linux Cluster An Overview. 19 May 2014 Ulrich Detert

Basic Concepts in Parallelization

22S:295 Seminar in Applied Statistics High Performance Computing in Statistics

MAQAO Performance Analysis and Optimization Tool

GPUs for Scientific Computing

Introduction to GPU hardware and to CUDA

The Assessment of Benchmarks Executed on Bare-Metal and Using Para-Virtualisation

High Performance Computing

Programming the Intel Xeon Phi Coprocessor

The GRID according to Microsoft

Technical Overview of Windows HPC Server 2008

White Paper. Intel Xeon Phi Coprocessor DEVELOPER S QUICK START GUIDE. Version 1.5

High Performance Computing

Floating-point control in the Intel compiler and libraries or Why doesn t my application always give the expected answer?

Spring 2011 Prof. Hyesoon Kim

Optimization on Huygens

Intel Parallel Studio XE 2015 Cluster Edition

Multi-core CPUs, Clusters, and Grid Computing: a Tutorial

An examination of the dual-core capability of the new HP xw4300 Workstation

Operating System Compiler Bits Part Number CNL 6.0 AMD Opteron (x86-64) Windows XP x64 Intel C Microsoft Platform SDK 64 P10312

INTEL Software Development Conference - LONDON High Performance Computing - BIG DATA ANALYTICS - FINANCE

BLM 413E - Parallel Programming Lecture 3

OpenMP & MPI CISC 879. Tristan Vanderbruggen & John Cavazos Dept of Computer & Information Sciences University of Delaware

On-Demand Supercomputing Multiplies the Possibilities

Recommended hardware system configurations for ANSYS users

HPC Wales Skills Academy Course Catalogue 2015

Maximize Performance and Scalability of RADIOSS* Structural Analysis Software on Intel Xeon Processor E7 v2 Family-Based Platforms

Evaluation of CUDA Fortran for the CFD code Strukti

Metrics for Success: Performance Analysis 101

Introduction to Linux and Cluster Basics for the CCR General Computing Cluster

A Pattern-Based Comparison of OpenACC & OpenMP for Accelerators

Part I Courses Syllabus

Lattice QCD Performance. on Multi core Linux Servers

Windows Compute Cluster Server Miron Krokhmal CTO

Operating System Compiler Bits Part Number CNL 7.0 AMD Opteron (x86 64) Windows XP/Vista x64 Visual Studio P10488

Improve Fortran Code Quality with Static Analysis

Scheduling Task Parallelism" on Multi-Socket Multicore Systems"

On the Importance of Thread Placement on Multicore Architectures

64-Bit versus 32-Bit CPUs in Scientific Computing

Cluster performance, how to get the most out of Abel. Ole W. Saastad, Dr.Scient USIT / UAV / FI April 18 th 2013

OpenACC Programming and Best Practices Guide

Keys to node-level performance analysis and threading in HPC applications

OpenCL for programming shared memory multicore CPUs

CS222: Systems Programming

Improve Fortran Code Quality with Static Security Analysis (SSA)

Performance Analysis and Optimization Tool

Parallel Algorithm Engineering

High Productivity Computing With Windows

Linux for Scientific Computing

Debugging with TotalView

Improved LS-DYNA Performance on Sun Servers

Course Development of Programming for General-Purpose Multicore Processors

GPU System Architecture. Alan Gray EPCC The University of Edinburgh

Parallel Computing using MATLAB Distributed Compute Server ZORRO HPC

COSCO 2015 Heterogeneous Computing Programming

Experiences of numerical simulations on a PC cluster Antti Vanne December 11, 2002

HPC Software Requirements to Support an HPC Cluster Supercomputer

Linux tools for debugging and profiling MPI codes

Introduction to GPU Programming Languages

Data Structure Oriented Monitoring for OpenMP Programs

Applications to Computational Financial and GPU Computing. May 16th. Dr. Daniel Egloff

High Performance Computing for Operation Research

Intel Parallel Studio XE 2015 Update 1 Cluster Edition

Three Paths to Faster Simulations Using ANSYS Mechanical 16.0 and Intel Architecture

Unleashing the Performance Potential of GPUs for Atmospheric Dynamic Solvers

Using the Windows Cluster

CUDA programming on NVIDIA GPUs

Overview. Lecture 1: an introduction to CUDA. Hardware view. Hardware view. hardware view software view CUDA programming

David Rioja Redondo Telecommunication Engineer Englobe Technologies and Systems

A quick tutorial on Intel's Xeon Phi Coprocessor

Eliminate Memory Errors and Improve Program Stability

Kashif Iqbal - PhD Kashif.iqbal@ichec.ie

The CNMS Computer Cluster

OpenMP* 4.0 for HPC in a Nutshell

Transcription:

Fortran Program Development with Visual Studio* 2005 ~ Use Intel Visual Fortran with Visual Studio* ~ 31/Oct/2006 Software &Solutions group *

Agenda Features of Intel Fortran Compiler Integrate with Visual Studio* Make a simple Fortran Project Utilize Debug Facility of Visual Studio* Utilize Intel VTune Performance Analyzer and Intel Threading Tool. Utilize Intel Math Kernel Library 2 Intel Software Development Products

Intel Fortran Compiler Execute Software in top speed Microsoft Visual Studio* Integration Compaq Visual Fortran* Compatibility Supports following Intel Processor 32bit Processors Intel EM64T and Intel Itanium 2 Processor Family Dual-Core Intel Xeon processor 5100 series Intel Core 2 Duo processor Intel Core 2 Extreme processor Dual-Core Intel Itanium 2 9000 sequence Dual-Core Intel Xeon processor 7100 series Support for Streaming SIMD Extensions (SSE2 and SSE3) Support for Multi core Processors Support for Auto-parallelization and OpenMP* Support for AMD* Opteron* and Athlon* Processor Intel Code Coverage and Intel Test Prioritization Tools Intel Visual Fortran Windows Professional Edition is packaged with Numerics* IMSL* library Fortran 77/90/95 and 2003 features ISO(ISO/IEC 1539:1991 ISO/IEC 1539-1:1997) ANSI X3.9-1978 Compatible Support Windows* Linux* Mac* 64bit Multicore AMD* Intel Fortran Compiler 3 Intel Software Development Products

Intel Fortran Compiler High Level Optimization Facility High Level Optimization(HLO) Vectorization Auto-Parallelization Parallelization by OpenMP* Inter Procedure Optimization Profile Guided Optimization 4 Intel Software Development Products

Auto-Parallelization The Compiler Auto-Parallelization is implicitly parallelized The Compiler will do automatic threading of loop and other structures Focus on loop unrolling and splitting 5 Intel Software Development Products

Auto-Parallelization - A Example for (i=1; i<100; i++) { a[i] = a[i] + b[i] * c[i]; } Auto- Parallelize // Thread 1 for (i=1; i<50; i++) { a[i] = a[i] + b[i] * c[i]; } // Thread 2 for (i=50; i<100; i++) { a[i] = a[i] + b[i] * c[i]; } 6 Intel Software Development Products

What's OpenMP*? www.openmp.org Parallel Programming Model for shared memory multiprocessors Application Program Interface (API) Fortran 77 Fortran 90 C and C++ Support Linux* and Windows* Standardize loop level parallel processing Support coarse grain parallel processing No need to have separate Sources for Serial or Parallel version of your code Main API component Compiler Directives Runtime Library routine Environment Variables 7 Intel Software Development Products

Programming Model of OpenMP* Thread-based Parallelization Explicit Parallelism Fork-join Model Based on Directives or Pragmas Dynamic Threading 8 Intel Software Development Products

Fork-join Model Parallelization Master Thread will create a team of threads by needs You can add Parallel processing incrementally. So, you can evolve serial program to parallel program Master Thread Parallel Execution Region 9 Intel Software Development Products

OpenMP* Directive Syntax Almost All OpenMP syntax is defined by Compiler directives or pragmas Pragma syntax for C or C++ : #pragma omp construct [clause [clause] ] Directive syntax for Fortran (Use one of them): C$OMP construct [clause [clause] ]!$OMP construct [clause [clause] ] *$OMP construct [clause [clause] ] Include file and OpenMP library module #include omp.h use omp_lib 10 Intel Software Development Products

OpenMP* - Basic Syntax Application is composed of serial section and parallel section. Thread will be made by combination of parallel pragmas Data will categorized as shared among threads or private to a thread C$OMP PARALLEL Thread 1 Thread 2 Thread 3 C$OMP END PARALLEL C$OMP PARALLEL //This region will be parallelized C$OMP END PARALLEL 11 Intel Software Development Products

OpenMP: Example of working queue exteinsion To Enable below processing compiler will make task queue: Recursive function Linked List, etc LIST p; #pragma intel omp parallel taskq shared(p) { while (p!= NULL) { #pragma intel omp task captureprivate(p) do_work1(p); p = p->next; } } Intel Software Development Products

Make Fortran Project Choose "インテル Fortran プロジェクト" 13 Intel Software Development Products

Utilize Visual Studio* Facility Debugging of Fortran Program 14 Intel Software Development Products

Set Compiler Options Set " 構 成 プロパティー" 15 Intel Software Development Products

Intel Math Kernel Library 8.1 A Highly Optimized and Thread Safe Math libraries Multi-core optimizations Thread safe Highly scale in multi processor environment Identify Processor at runtime Support for C and Fortran call One package for All Intel Processors Loyalty free redistribution BLAS LAPACK Sparse Solvers Fast Fourier Transforms Vector Math Support Windows* 64bit Multi-core AMD* Intel MKL 16 Intel Software Development Products

Intel Math Kernel Library Cluster Edition 8.1 ScaLAPACK for Windows* CCS Cluster (Scalable LAPACK) LAPACK routine for distributed computer Features: Support for Microsoft Windows* MPI Tested on Ethernet Myrinet* InfiniBand* PBLAS(Parallel BLAS)and BLACS (Basic Linear Algebra Communication Subprograms) BLAS LAPACK ScaLAPACK Sparse Solvers Fast Fourier Transforms Vector Math 17 Intel Software Development Products

Demo Compare Performance of vectorized and auto-parallelized code. 18 Intel Software Development Products

19 Intel Software Development Products