boostorg / boostorg/odeint

Make OpenMP range algebra buildable with MSVC

Open
#31 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
C++
Stars
55
Forks
59
PR merge metrics
No merged PRs in 30d

Description

Current implementation of openmp_range_algebra uses unsigned type (size_t) as index in for loops that are parallelized by OpenMP. This is not supported by MSVC. Additionally, as MSVC is still stuck with OpenMP 2.0 support, the OpenMP reduction syntax used by `norm_inf` also does not compile. The following patch fixes the issue; at least of MSVC 14.
[0001-Make-OpenMP-range-algebra-buildable-with-MSVC.txt](https://github.com/boostorg/odeint/files/2752406/0001-Make-OpenMP-range-algebra-buildable-with-MSVC.txt)

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the openmp_range_algebra implementation and the norm_inf reduction mentioned in the issue, then compare them with the attached patch. Check the result with MSVC 14 and its OpenMP 2.0 support; done means the range algebra builds successfully, including norm_inf.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
hpc
Issue type
Bug
Difficulty
3/5
Estimated time
1-2 days
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
45/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.