question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

There are 3 variants,

  1. libgcc-ng - libgomp.so
  2. intel-openmp - libiomp5.so
  3. llvm-openmp - libomp.so

2 and 3 are basically the same. They share the same codebase. intel-openmp-2019.4-243 and llvm-openmp-8.0.0 have the same symbols except for kmp_compose_init which is missing in llvm-openmp. (No google hits on that symbol)

One advantage of LLVM and Intel’s openmp is that it is fork safe, while GNU’s is not.

LLVM’s openmp have two sets of symbols. GOMP ones and Intel ones. clang generated code use the Intel symbols. The GOMP symbols are present in LLVM’s openmp which means we can swap the two implementations.

I checked libgcc-ng 7.3.0 and llvm-openmp 8.0.0 and the symbols in https://gist.github.com/isuruf/36851d30ef57153807a8bdd11812ee90 are missing. Most of these relate to OpenACC and target off-loading in OpenMP 4.5. (There are some symbols missing that should be fixed in LLVM side. For eg: https://reviews.llvm.org/D65714)

My question is are we okay with going the BLAS way and swapping these implementations under the hood? BLAS is working really well and I thought we could use the same strategy for openmp.

cc @mingwandroid, @conda-forge/core

Issue Analytics

  • State:closed
  • Created 4 years ago
  • Reactions:1
  • Comments:23 (21 by maintainers)

github_iconTop GitHub Comments

1reaction
isurufcommented, Jan 10, 2020

No, but we can steal https://github.com/AnacondaRecipes/intel_repack-feedstock @scopatz said that NumFOCUS lawyer gave us a green light to redistribute MKL.

Read more comments on GitHub >

github_iconTop Results From Across the Web

OpenMP* Run-time Library Routines - Intel
OpenMP * provides run-time library routines to help you manage your program in parallel mode. Many of these run-time library routines have corresponding ......
Read more >
3 Runtime Library Routines - OpenMP
This chapter describes the OpenMP API runtime library routines and queryable runtime states. In this chapter, true and false are used as generic...
Read more >
LLVM/OpenMP Runtimes
The target device runtime is an LLVM bitcode library that implements OpenMP runtime functions on the target device. It is linked with the...
Read more >
OpenMP runtime functions for parallel processing - IBM
Function definitions for the omp_ functions can be found in the omp.h header file. For complete information about OpenMP runtime library functions, ...
Read more >
OpenMP* Run-time Library Routines
OpenMP * provides several run-time library routines to help you manage your program in parallel mode. Many of these run-time library routines have ......
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found