begin process at 2012 05 28 10:13:23
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Divers

 > 

Divers

 > 

calcul en parallèle


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

calcul en parallèle

jeudi 1 juillet 2010 à 16:17:28 | calcul en parallèle

Adel85


Bonjour,
J'utilise openmp pour effectuer un calcul en parallèle.
J'ai comparé les résultats obtenu avec et sans parallélisme et ça colle pas.
Bref, je vous laisse mon code :


#include <iostream>
#include <omp.h>
#include <cmath>
#include <complex>
#include "r2d2lri.h"

using namespace std;
#define N 10

double a=0.2,b=0.2,k=50.0,xx=0.1,yy=0.1;
int m=0,n=0;
const double pi=4.0*atan(1.0);
const complex<double> I(0.0,1.0);




double g30(double)
{
return 0.0;
}

double g31(double)
{
return pi/2.0;
}

double faReal(double r, double t)
{
return r*jn(2*m,r*cos(t))*jn(2*n,r*sin(t))*cos(r*xx*cos(t))*cos(r*yy*sin(t)/a)/sqrt(pow(r,2)-pow(k*a,2));
}



int main()
{
int i=0,j=0;
int chunk=1;
double aa[N][N];
DoubleIntegral integ(k*a+0.10,(i+1)*k*a,g30,g31,faReal);
omp_set_dynamic(0);
omp_set_num_threads(16);

//calcul parallèle
#pragma omp parallel shared(aa,k,a,b) private(m,n,i)
{
#pragma omp for collapse(3) //schedule(dynamic,chunk) nowait
for (m = 0; m < N; m++)
{
for (n = 0; n < N; n++)
{
for (i=1; i < 10*N;i=i+10)
{
integ.set_new_integral(i*k*a+0.0001,(i+10)*k*a+0.0001,g30,g31,faReal);
#pragma omp critical
aa[m][n] += integ.evaluate();
}
}

}
}

//sans threads
double bb[N][N];
for (m = 0; m < N; m++)
{
for (n = 0; n < N; n++)
{
for (i=1; i < 10*N;i=i+10)
{
integ.set_new_integral(i*k*a+0.0001,(i+10)*k*a+0.0001,g30,g31,faReal);
bb[m][n] += integ.evaluate();

}
cout<<m<<","<<n<<"-->"<<aa[m][n]-bb[m][n]<<endl;
}

}

return 0;
}

DoubleIntegral est une classe du header r2d2lri.h qui permet de calculer une intégrale double de n'importe quel fonction. Elle est téléchargeable depuis ce lien :
http://cubature-research-group.cs.latrobe.edu.au/code.htm

Merci pour votre aide.



Cette discussion est classée dans : int, include, double, calcul, parallèle


Répondre à ce message

Sujets en rapport avec ce message

aide sur un algorithme en dec-C++ [ par viagra ] je souhaiterais être aidé sur un algorithme sur lequel j'éprouve des problemes. en effet lorsque je compile aussi bien au niveau de dev-c++ et MSYS, l Lire sur port parallèle! [ par tof0256 ] Bonjour,J'aimerais lire des données sur le port parallèle. J'aimerai utiliser les 8 bit de donnée pour cela. J'ai une fiche DB25 ou j'ai relié les PIn Lire des chiffres avec les virgules [ par Stiko ] salut, j'ai fait un petit programme pour ouvrire un fichier texte qui contient seument des chifres séparées par des points virgules.ce programme lit l Problème avec type double / paramètre [ par DmX0rZ ] Bonjour,j'ai un problème qui me semble vraiment évident mais pour une raison inconnue, je ne comprens pas le comportement du programme... voilà, le pa Besoin d'aide en programmation C++ [ par yassinefugi ] Bonjour tous le monde; j'essaye de faire un programme mathématique en langage C++ qui sert à résoudre les équations différentielles , mais j'ai rencon ajouter une librairie utilisateur à un programme C sous Visual Studio 2008 [ par boualiasma ] Salut,on peut implémenter des fonctions dans header par exemple calcul.h qui implémente les fonctions somme, multiplication. Dans mon programme main.c éliminer les doublons ! [ par jekburn ] Bonsoir, J'ai demandé de l'aide y'a 2 semaines, mais là je suis toujours bloqué ! Please help ! Je cherche à supprimer les doublons que me sort mon p Correction de mon programme pour ecrire une image avec succés [ par ami2008 ] #include #include #include #include #define LARGEUR 256 #define HAUTEUR 256 int main() { //------------------------------------- // Déclaration Code C : resolveur de meistermind probleme [ par kinder87000 ] Salut à tous, Voila mon problème j'ai essayer de faire un résolveur de meistermind mais je ne sais pas comment associer des couleurs à des chiffres e tracer des points en c [ par fireman42 ] Bonjour à tous :) Pour un projet d'algorithmique, je dois écrire en C le programme suivant : a) Créer 1000 points d'abscisse de 1 à 1000 et d'ordonné


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,061 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales