-------- Original-Nachricht --------
Datum: Wed, 19 May 2010 17:37:44 +0200 Von: "Martin Ettl" <ettl.martin@gmx.de> An: jros@unavarra.es, GiNaC discussion list <ginac-list@ginac.de> Betreff: [GiNaC-list] Ginac and OpenMP
Hello,
i try to do some symbolic computation in parallel using openMP. This is offered from gcc since version 4.2 on Linux.
Here a reduced version of what i have tried:
#include <iostream> #include <stdexcept> #include <ginac/ginac.h> #include <omp.h> using namespace std; using namespace GiNaC;
int main() {
symbol omega("om"),u("u"),du("du"); ex F = -(pow(omega,12)*u) - (pow(u,13)); unsigned int ui; #pragma omp parallel for private(F) shared(ui,u,omega,du) for(ui = 0; ui < 10 ; ui++) std::cout << F.diff(u,ui) << std::endl;
}
Compile it with : g++ -fopenmp -o test test.cpp -lginac
For every iteration of the for loop, the result is still zero. Has anybody else have had the same (or similiar) problem. Have i made misst something?
Many thanks in advance
Martin BTW,
switching off OpenMP prints the following correct result: -om^12*u-u^13 -13*u^12-om^12 -156*u^11 -1716*u^10 -17160*u^9 -154440*u^8 -1235520*u^7 -8648640*u^6 -51891840*u^5 -259459200*u^4 Maybe Ginac is not usable with OpenMP? Cheers, Martin -- GRATIS für alle GMX-Mitglieder: Die maxdome Movie-FLAT! Jetzt freischalten unter http://portal.gmx.net/de/go/maxdome01