Programs are rarely built from a single source code file. Normally, code is organized into several source files, reaching hundreds or even thousands of files for large programs. Static code analysis tools work by analyzing the source code files. When a function defined in a source file calls another function defined in a different source […]
Technical
Using CMake’s compilation database with Parallelware Analyzer
When building a program, seldom do we only invoke the compiler passing a source file and an output binary name. In most cases, we must supply several compiler flags such as include paths or macro definitions. A program is usually built by compiling different source files where each may require different compiler flags. One of […]
Parallelware Analyzer NPB Quickstart
Index What is Parallelware Analyzer?– Where to start?– Useful options common to all toolsQuickstart with NAS Parallel BenchmarksUsing a configuration file Early Access Program is now open! Enter the program to have access to all versions of Parallelware Analyzer and support until the official release. What is Parallelware Analyzer? Parallelware Analyzer is a suite of […]
Customizing Parallelware Trainer through environment variables
Starting with version 1.4.0, Parallelware Trainer can be customized using environment variables. This is particularly helpful in deployments using a multi-user license or when certain development packages are installed in non-standard locations (e.g. MPI headers being located in /opt/mpi/include instead of in /usr/include/mpi). Customizing license file location When looking for a license file, Parallelware Trainer […]
Defects and recommendations for parallelism
Implementing parallel software is hard. On top of all the kinds of bugs that may be present in sequential code, parallel code can also suffer from race conditions. A race condition exists when several threads access the same data at the same time and at least one of them writes to it. Opening the door […]
Fixing defects in parallel code: an OpenMP example
Parallelware Analyzer provides a set of tools covering the most challenging steps of your parallel development workflow. Join the Parallelware Analyzer Early Access Program to get access to the tools for free. In this post, we present the pwcheck tool which provides a static code analyzer to ensure that your code is defect-free and compliant […]
OpenACC programming: Implementing a parallel forall (9/9)
This is the ninth video of our OpenACC programming course based on Appentra’s unique, productivity-oriented approach to learn best practices for parallel programming using OpenACC. Learning outcomes include how to decompose codes into parallel patterns and a practical step-by-step process based on patterns for parallelizing any code. In this last video we will learn to […]
OpenACC programming: Identifying a forall pattern (8/9)
This is the eighth video of our OpenACC programming course based on Appentra’s unique, productivity-oriented approach to learn best practices for parallel programming using OpenACC. Learning outcomes include how to decompose codes into parallel patterns and a practical step-by-step process based on patterns for parallelizing any code. In this video we will learn about the […]
OpenACC programming: Using patterns to parallelize (7/9)
This is the seventh video of our OpenACC programming course based on Appentra’s unique, productivity-oriented approach to learn best practices for parallel programming using OpenACC. Learning outcomes include how to decompose codes into parallel patterns and a practical step-by-step process based on patterns for parallelizing any code. In this video you will learn how to […]
OpenACC programming: Using your first OpenACC directives (6/9)
This is the sixth video of our OpenACC programming course based on Appentra’s unique, productivity-oriented approach to learn best practices for parallel programming using OpenACC. Learning outcomes include how to decompose codes into parallel patterns and a practical step-by-step process based on patterns for parallelizing any code. In this video we will learn how to […]