Dear all,
Did anyone ever manage to use both openMP and openBabel in the same code?
Thank you.
Nicolas
2016-10-29 9:11 GMT+02:00 Nicolas Cheron <nicolas.cheron.bou...@gmail.com>:
> Dear all,
>
> I would like to use OpenMP with a code that uses the Openbabel library,
> and I am facing problems. I have copied an example of a simple code below.
> I have tried with Openbabel 2.3.2 and 2.4.1. I am compiling with:
>
> g++ -O3 -Wall -std=c++11 -Wno-uninitialized -I/home/nicolas/Programs/
> Openbabel_2.3.2/include/openbabel-2.0 -lm -fopenmp -c File.cpp -o File.o
> g++ File.o -o File.exe -rdynamic /home/nicolas/Programs/
> Openbabel_2.3.2/lib/libopenbabel.so
> -Wl,-rpath,/home/nicolas/Programs/Openbabel_2.3.2/lib
> -fopenmp
>
> When using the following, it works and produces 20 files (Ligand_0_x.xyz
> with x from 0 to 19):
> export OMP_NUM_THREADS=1
> ./File.exe
>
> When I set export OMP_NUM_THREADS=4, it fails with:
> ==============================
> *** Open Babel Warning in Translate
> Cannot perform atom type translation: table cannot find requested types.
> Erreur de segmentation (core dumped)
>
>
> Can someone please help me fixing it. I am now wondering if it is possible
> to mix OpenMP and Openbabel.
>
> Thank you
>
> Nicolas
>
>
>
> ***********************************************
> #include <openbabel/mol.h>
> #include <openbabel/obconversion.h>
> #include <openbabel/forcefield.h>
> #include <openbabel/atom.h>
> #include <omp.h>
>
> using namespace std;
>
> int main(int nbarg, char * argv[])
> {
> #pragma omp parallel for
> for (int x=0 ; x < 20 ; x++) {
> //Convert thread index and x in string
> ostringstream threadFlow;
> threadFlow << omp_get_thread_num();
> string thread = threadFlow.str();
> ostringstream xFlow;
> xFlow << x;
> string counter = xFlow.str();
>
> //Read the input file
> OpenBabel::OBMol obMol;
> OpenBabel::OBConversion obConversion;
> OpenBabel::OBFormat *format = obConversion.FormatFromExt("
> Molecule.pdb");
> obConversion.SetInFormat(format);
> obConversion.ReadFile(&obMol, "Molecule.pdb");
>
> //Convert the object in xyz
> string outputFileName = "Ligand_" + thread + "_" + counter + ".xyz";
> obConversion.SetOutFormat("xyz");
> obMol.SetTitle(outputFileName);
> obConversion.WriteFile(&obMol, outputFileName);
> }
> return 0;
> }
>
>
>
>
>
------------------------------------------------------------------------------
Developer Access Program for Intel Xeon Phi Processors
Access to Intel Xeon Phi processor-based developer platforms.
With one year of Intel Parallel Studio XE.
Training and support from Colfax.
Order your platform today. http://sdm.link/xeonphi
_______________________________________________
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss