bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
Le Tue, 22 Dec 2009 11:52:21 +0100
remy a écrit :bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
Et pour le test, comment le fais-tu ? Ça ne devrait pas être diffic ile
à distribuer.
Le Tue, 22 Dec 2009 11:52:21 +0100
remy <remy@fctpas.fr> a écrit :
bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
Et pour le test, comment le fais-tu ? Ça ne devrait pas être diffic ile
à distribuer.
Le Tue, 22 Dec 2009 11:52:21 +0100
remy a écrit :bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
Et pour le test, comment le fais-tu ? Ça ne devrait pas être diffic ile
à distribuer.
Yliur a écrit :
> Le Tue, 22 Dec 2009 11:52:21 +0100
> remy a écrit :
>
>> bonjour
>>
>> vous ne connaitriez pas un bout de code multi thread
>> java qui ferait un test de primalité
>> histoire de me servir de tous les coeurs de la machine
>> c'est pour booster un peu le code
>>
>> http://cjoint.com/data/mwlRFNicX7.htm
>>
>> vu que la même implémentation en c
>> http://cjoint.com/data/mwlL3wfBsX.htm
>>
>> c'est avérée moins rapide
>> à titre perso je ne m'attendais pas à un écart aussi grand
>>
>>
>>
>> merci remy
>
> La version C est *moins* rapide ?
> Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
:~/Bureau/cJumeaux$
>
> Et pour le test, comment le fais-tu ? Ça ne devrait pas être
> difficile à distribuer.
>
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
remy
Yliur a écrit :
> Le Tue, 22 Dec 2009 11:52:21 +0100
> remy <remy@fctpas.fr> a écrit :
>
>> bonjour
>>
>> vous ne connaitriez pas un bout de code multi thread
>> java qui ferait un test de primalité
>> histoire de me servir de tous les coeurs de la machine
>> c'est pour booster un peu le code
>>
>> http://cjoint.com/data/mwlRFNicX7.htm
>>
>> vu que la même implémentation en c
>> http://cjoint.com/data/mwlL3wfBsX.htm
>>
>> c'est avérée moins rapide
>> à titre perso je ne m'attendais pas à un écart aussi grand
>>
>>
>>
>> merci remy
>
> La version C est *moins* rapide ?
> Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
remy@remy-desktop:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
remy@remy-desktop:~/Bureau/cJumeaux$
>
> Et pour le test, comment le fais-tu ? Ça ne devrait pas être
> difficile à distribuer.
>
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
remy
Yliur a écrit :
> Le Tue, 22 Dec 2009 11:52:21 +0100
> remy a écrit :
>
>> bonjour
>>
>> vous ne connaitriez pas un bout de code multi thread
>> java qui ferait un test de primalité
>> histoire de me servir de tous les coeurs de la machine
>> c'est pour booster un peu le code
>>
>> http://cjoint.com/data/mwlRFNicX7.htm
>>
>> vu que la même implémentation en c
>> http://cjoint.com/data/mwlL3wfBsX.htm
>>
>> c'est avérée moins rapide
>> à titre perso je ne m'attendais pas à un écart aussi grand
>>
>>
>>
>> merci remy
>
> La version C est *moins* rapide ?
> Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
:~/Bureau/cJumeaux$
>
> Et pour le test, comment le fais-tu ? Ça ne devrait pas être
> difficile à distribuer.
>
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
remy
Yliur a écrit :
>
> Je n'ai pas vérifié les deux implémentations, mais c'est étrang e.
> sur ce genre de calculs en général ça va plus vite en C. Mais c'e st
> difficile à comparer en utilisant des bibliothèques externes,
> peut-être que ce sont elles qui sont en cause. Enfin ce n'est pas
> très important...
>
Après un rapide coup d'oeil sur la libgmp il semblerait que le type
mpz_t cache de l'allocation dynamique (d'ailleurs il manque les
appels à mpz_clear pour libérer la mémoire). Dans un cas comme ça il
n'est pas impossible que Java avec son JIT puisse s'avèrer plus
efficace.
> Et tu as regardé ce qui consommait du temps exactement ?
> Est-ce que ta boucle est répétée beaucoup de fois ? Tu ne pourrais
> pas lancer plusieurs itérations en même temps plutôt qu'utiliser un
> autre algo de test pour tes nombres premiers ?
>
Moi je me demande si les 2 codes font la même chose...
extrait du code C :
if(mpz_probab_prime_p(val1,500)>0)
{
if(mpz_probab_prime_p(val2,500)>0)
extrait du code Java :
if (val1.isProbablePrime(100))
{
if (val2.isProbablePrime(100))
Rien ne dit que les valeurs 100 en java et 500 en C vont provoquer le
même nombre de tests...
D'ailleurs la doc de GMP précise pour ce paramètre : '5 to 10 is a
reasonable number'. Alors 500...
Bref il faut comparer ce qui est comparable.
Yliur a écrit :
>
> Je n'ai pas vérifié les deux implémentations, mais c'est étrang e.
> sur ce genre de calculs en général ça va plus vite en C. Mais c'e st
> difficile à comparer en utilisant des bibliothèques externes,
> peut-être que ce sont elles qui sont en cause. Enfin ce n'est pas
> très important...
>
Après un rapide coup d'oeil sur la libgmp il semblerait que le type
mpz_t cache de l'allocation dynamique (d'ailleurs il manque les
appels à mpz_clear pour libérer la mémoire). Dans un cas comme ça il
n'est pas impossible que Java avec son JIT puisse s'avèrer plus
efficace.
> Et tu as regardé ce qui consommait du temps exactement ?
> Est-ce que ta boucle est répétée beaucoup de fois ? Tu ne pourrais
> pas lancer plusieurs itérations en même temps plutôt qu'utiliser un
> autre algo de test pour tes nombres premiers ?
>
Moi je me demande si les 2 codes font la même chose...
extrait du code C :
if(mpz_probab_prime_p(val1,500)>0)
{
if(mpz_probab_prime_p(val2,500)>0)
extrait du code Java :
if (val1.isProbablePrime(100))
{
if (val2.isProbablePrime(100))
Rien ne dit que les valeurs 100 en java et 500 en C vont provoquer le
même nombre de tests...
D'ailleurs la doc de GMP précise pour ce paramètre : '5 to 10 is a
reasonable number'. Alors 500...
Bref il faut comparer ce qui est comparable.
Yliur a écrit :
>
> Je n'ai pas vérifié les deux implémentations, mais c'est étrang e.
> sur ce genre de calculs en général ça va plus vite en C. Mais c'e st
> difficile à comparer en utilisant des bibliothèques externes,
> peut-être que ce sont elles qui sont en cause. Enfin ce n'est pas
> très important...
>
Après un rapide coup d'oeil sur la libgmp il semblerait que le type
mpz_t cache de l'allocation dynamique (d'ailleurs il manque les
appels à mpz_clear pour libérer la mémoire). Dans un cas comme ça il
n'est pas impossible que Java avec son JIT puisse s'avèrer plus
efficace.
> Et tu as regardé ce qui consommait du temps exactement ?
> Est-ce que ta boucle est répétée beaucoup de fois ? Tu ne pourrais
> pas lancer plusieurs itérations en même temps plutôt qu'utiliser un
> autre algo de test pour tes nombres premiers ?
>
Moi je me demande si les 2 codes font la même chose...
extrait du code C :
if(mpz_probab_prime_p(val1,500)>0)
{
if(mpz_probab_prime_p(val2,500)>0)
extrait du code Java :
if (val1.isProbablePrime(100))
{
if (val2.isProbablePrime(100))
Rien ne dit que les valeurs 100 en java et 500 en C vont provoquer le
même nombre de tests...
D'ailleurs la doc de GMP précise pour ce paramètre : '5 to 10 is a
reasonable number'. Alors 500...
Bref il faut comparer ce qui est comparable.
Yliur a écrit :Le Tue, 22 Dec 2009 11:52:21 +0100
remy a écrit :bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
:~/Bureau/cJumeaux$
Et pour le test, comment le fais-tu ? Ça ne devrait pas être difficile
à distribuer.
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Yliur a écrit :
Le Tue, 22 Dec 2009 11:52:21 +0100
remy <remy@fctpas.fr> a écrit :
bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
remy@remy-desktop:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
remy@remy-desktop:~/Bureau/cJumeaux$
Et pour le test, comment le fais-tu ? Ça ne devrait pas être difficile
à distribuer.
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Yliur a écrit :Le Tue, 22 Dec 2009 11:52:21 +0100
remy a écrit :bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
:~/Bureau/cJumeaux$
Et pour le test, comment le fais-tu ? Ça ne devrait pas être difficile
à distribuer.
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Yliur a écrit :
> Le Tue, 22 Dec 2009 12:17:43 +0100
> remy a écrit :
>
>> Yliur a écrit :
>>> Le Tue, 22 Dec 2009 11:52:21 +0100
>>> remy a écrit :
>>>
>>>> bonjour
>>>>
>>>> vous ne connaitriez pas un bout de code multi thread
>>>> java qui ferait un test de primalité
>>>> histoire de me servir de tous les coeurs de la machine
>>>> c'est pour booster un peu le code
>>>>
>>>> http://cjoint.com/data/mwlRFNicX7.htm
>>>>
>>>> vu que la même implémentation en c
>>>> http://cjoint.com/data/mwlL3wfBsX.htm
>>>>
>>>> c'est avérée moins rapide
>>>> à titre perso je ne m'attendais pas à un écart aussi grand
>>>>
>>>>
>>>>
>>>> merci remy
>>> La version C est *moins* rapide ?
>>> Quel est l'écart ?
>> il te faut la libgmp voir avec synaptic et gcc
>>
>>
>> gcc -o jumeaux jumeaux.c -lgmp
>> time ./jumeaux
>>
>> real 0m34.833s
>> user 0m34.230s
>> sys 0m0.000s
>> :~/Bureau/cJumeaux$
>>
>> javac jumeaux.java
>> time java jumeaux
>>
>> real 0m12.011s
>> user 0m12.429s
>> sys 0m0.416s
>> :~/Bureau/cJumeaux$
>
> Je n'ai pas vérifié les deux implémentations, mais c'est étrang e.
> sur ce genre de calculs en général ça va plus vite en C. Mais c'e st
> difficile à comparer en utilisant des bibliothèques externes,
> peut-être que ce sont elles qui sont en cause. Enfin ce n'est pas
> très important...
>
> Par contre pour des programmes qui ont besoin de faire des calculs
> plus rapides, tu pourrait ajouter -O2 dans ta compilation avec gcc
> et -server dans le lancement de ta JVM.
>
>
o2 me retourne une tripotée erreur
[... plein d'erreurs]
et avec
:~/Bureau/cJumeaux$ time java -server jumeaux
nb de pas 381
qt nb premier consecutif 45
1497271467298031313236780933978888894922017474242792191470119801708427842 6205606579
1497271467298031313236780933978888894922017474242792191470119801708427842 6205606581
real 0m11.506s
user 0m11.893s
sys 0m0.416s
:~/Bureau/cJumeaux$
Yliur a écrit :
> Le Tue, 22 Dec 2009 12:17:43 +0100
> remy <remy@fctpas.fr> a écrit :
>
>> Yliur a écrit :
>>> Le Tue, 22 Dec 2009 11:52:21 +0100
>>> remy <remy@fctpas.fr> a écrit :
>>>
>>>> bonjour
>>>>
>>>> vous ne connaitriez pas un bout de code multi thread
>>>> java qui ferait un test de primalité
>>>> histoire de me servir de tous les coeurs de la machine
>>>> c'est pour booster un peu le code
>>>>
>>>> http://cjoint.com/data/mwlRFNicX7.htm
>>>>
>>>> vu que la même implémentation en c
>>>> http://cjoint.com/data/mwlL3wfBsX.htm
>>>>
>>>> c'est avérée moins rapide
>>>> à titre perso je ne m'attendais pas à un écart aussi grand
>>>>
>>>>
>>>>
>>>> merci remy
>>> La version C est *moins* rapide ?
>>> Quel est l'écart ?
>> il te faut la libgmp voir avec synaptic et gcc
>>
>>
>> gcc -o jumeaux jumeaux.c -lgmp
>> time ./jumeaux
>>
>> real 0m34.833s
>> user 0m34.230s
>> sys 0m0.000s
>> remy@remy-desktop:~/Bureau/cJumeaux$
>>
>> javac jumeaux.java
>> time java jumeaux
>>
>> real 0m12.011s
>> user 0m12.429s
>> sys 0m0.416s
>> remy@remy-desktop:~/Bureau/cJumeaux$
>
> Je n'ai pas vérifié les deux implémentations, mais c'est étrang e.
> sur ce genre de calculs en général ça va plus vite en C. Mais c'e st
> difficile à comparer en utilisant des bibliothèques externes,
> peut-être que ce sont elles qui sont en cause. Enfin ce n'est pas
> très important...
>
> Par contre pour des programmes qui ont besoin de faire des calculs
> plus rapides, tu pourrait ajouter -O2 dans ta compilation avec gcc
> et -server dans le lancement de ta JVM.
>
>
o2 me retourne une tripotée erreur
[... plein d'erreurs]
et avec
remy@remy-desktop:~/Bureau/cJumeaux$ time java -server jumeaux
nb de pas 381
qt nb premier consecutif 45
1497271467298031313236780933978888894922017474242792191470119801708427842 6205606579
1497271467298031313236780933978888894922017474242792191470119801708427842 6205606581
real 0m11.506s
user 0m11.893s
sys 0m0.416s
remy@remy-desktop:~/Bureau/cJumeaux$
Yliur a écrit :
> Le Tue, 22 Dec 2009 12:17:43 +0100
> remy a écrit :
>
>> Yliur a écrit :
>>> Le Tue, 22 Dec 2009 11:52:21 +0100
>>> remy a écrit :
>>>
>>>> bonjour
>>>>
>>>> vous ne connaitriez pas un bout de code multi thread
>>>> java qui ferait un test de primalité
>>>> histoire de me servir de tous les coeurs de la machine
>>>> c'est pour booster un peu le code
>>>>
>>>> http://cjoint.com/data/mwlRFNicX7.htm
>>>>
>>>> vu que la même implémentation en c
>>>> http://cjoint.com/data/mwlL3wfBsX.htm
>>>>
>>>> c'est avérée moins rapide
>>>> à titre perso je ne m'attendais pas à un écart aussi grand
>>>>
>>>>
>>>>
>>>> merci remy
>>> La version C est *moins* rapide ?
>>> Quel est l'écart ?
>> il te faut la libgmp voir avec synaptic et gcc
>>
>>
>> gcc -o jumeaux jumeaux.c -lgmp
>> time ./jumeaux
>>
>> real 0m34.833s
>> user 0m34.230s
>> sys 0m0.000s
>> :~/Bureau/cJumeaux$
>>
>> javac jumeaux.java
>> time java jumeaux
>>
>> real 0m12.011s
>> user 0m12.429s
>> sys 0m0.416s
>> :~/Bureau/cJumeaux$
>
> Je n'ai pas vérifié les deux implémentations, mais c'est étrang e.
> sur ce genre de calculs en général ça va plus vite en C. Mais c'e st
> difficile à comparer en utilisant des bibliothèques externes,
> peut-être que ce sont elles qui sont en cause. Enfin ce n'est pas
> très important...
>
> Par contre pour des programmes qui ont besoin de faire des calculs
> plus rapides, tu pourrait ajouter -O2 dans ta compilation avec gcc
> et -server dans le lancement de ta JVM.
>
>
o2 me retourne une tripotée erreur
[... plein d'erreurs]
et avec
:~/Bureau/cJumeaux$ time java -server jumeaux
nb de pas 381
qt nb premier consecutif 45
1497271467298031313236780933978888894922017474242792191470119801708427842 6205606579
1497271467298031313236780933978888894922017474242792191470119801708427842 6205606581
real 0m11.506s
user 0m11.893s
sys 0m0.416s
:~/Bureau/cJumeaux$
Le 22-12-2009, ? propos de
Re: recherche code multi thread java pour test de primalite,
remy ?crivait dans fr.comp.lang.java :Yliur a écrit :Le Tue, 22 Dec 2009 11:52:21 +0100
remy a écrit :bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
Je t'ai déjà dit de commencer par coller in -O3 sur la compi lation
de la libgmp et la même chose sur ton code (encore qu'en
l'occurrence, ça ne devrait pas changer grand'chose pour ton code ).
Avoir une telle différence tend à montrer qu'il y a un loup.gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
:~/Bureau/cJumeaux$Et pour le test, comment le fais-tu ? Ãa ne devrait pas êtr e difficile
à distribuer.
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Je t'ai déjà dit aussi qu'avec le même algorithme de ba se, on peut
coder des choses qui ont des performances parfaitement divergentes.
JKB
Le 22-12-2009, ? propos de
Re: recherche code multi thread java pour test de primalite,
remy ?crivait dans fr.comp.lang.java :
Yliur a écrit :
Le Tue, 22 Dec 2009 11:52:21 +0100
remy <remy@fctpas.fr> a écrit :
bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
Je t'ai déjà dit de commencer par coller in -O3 sur la compi lation
de la libgmp et la même chose sur ton code (encore qu'en
l'occurrence, ça ne devrait pas changer grand'chose pour ton code ).
Avoir une telle différence tend à montrer qu'il y a un loup.
gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
remy@remy-desktop:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
remy@remy-desktop:~/Bureau/cJumeaux$
Et pour le test, comment le fais-tu ? Ãa ne devrait pas êtr e difficile
à distribuer.
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Je t'ai déjà dit aussi qu'avec le même algorithme de ba se, on peut
coder des choses qui ont des performances parfaitement divergentes.
JKB
Le 22-12-2009, ? propos de
Re: recherche code multi thread java pour test de primalite,
remy ?crivait dans fr.comp.lang.java :Yliur a écrit :Le Tue, 22 Dec 2009 11:52:21 +0100
remy a écrit :bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
Je t'ai déjà dit de commencer par coller in -O3 sur la compi lation
de la libgmp et la même chose sur ton code (encore qu'en
l'occurrence, ça ne devrait pas changer grand'chose pour ton code ).
Avoir une telle différence tend à montrer qu'il y a un loup.gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
:~/Bureau/cJumeaux$Et pour le test, comment le fais-tu ? Ãa ne devrait pas êtr e difficile
à distribuer.
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Je t'ai déjà dit aussi qu'avec le même algorithme de ba se, on peut
coder des choses qui ont des performances parfaitement divergentes.
JKB
> >> Et pour le test, comment le fais-tu ? Ça ne devrait pas être
>> difficile à distribuer.
>>
>
> disons que j'ai actuellement la flemme de coder mon propre test de
> primalité donc j'utilise celui qui est fourni de base
> dans gmp et biginteger ce qui si j'en crois mes lectures ils
> utilisent tous les 2 un test de primalité Miller-Rabin
>
> http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Je t'ai déjà dit aussi qu'avec le même algorithme de base, on
peut coder des choses qui ont des performances parfaitement
divergentes.
JKB
> >> Et pour le test, comment le fais-tu ? Ça ne devrait pas être
>> difficile à distribuer.
>>
>
> disons que j'ai actuellement la flemme de coder mon propre test de
> primalité donc j'utilise celui qui est fourni de base
> dans gmp et biginteger ce qui si j'en crois mes lectures ils
> utilisent tous les 2 un test de primalité Miller-Rabin
>
> http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Je t'ai déjà dit aussi qu'avec le même algorithme de base, on
peut coder des choses qui ont des performances parfaitement
divergentes.
JKB
> >> Et pour le test, comment le fais-tu ? Ça ne devrait pas être
>> difficile à distribuer.
>>
>
> disons que j'ai actuellement la flemme de coder mon propre test de
> primalité donc j'utilise celui qui est fourni de base
> dans gmp et biginteger ce qui si j'en crois mes lectures ils
> utilisent tous les 2 un test de primalité Miller-Rabin
>
> http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Je t'ai déjà dit aussi qu'avec le même algorithme de base, on
peut coder des choses qui ont des performances parfaitement
divergentes.
JKB
Le Tue, 22 Dec 2009 15:06:16 +0100
remy a écrit :Yliur a écrit :
> Le Tue, 22 Dec 2009 12:17:43 +0100
> remy a écrit :
>
>> Yliur a écrit :
>>> Le Tue, 22 Dec 2009 11:52:21 +0100
>>> remy a écrit :
>>>
>>>> bonjour
>>>>
>>>> vous ne connaitriez pas un bout de code multi thread
>>>> java qui ferait un test de primalité
>>>> histoire de me servir de tous les coeurs de la machine
>>>> c'est pour booster un peu le code
>>>>
>>>> http://cjoint.com/data/mwlRFNicX7.htm
>>>>
>>>> vu que la même implémentation en c
>>>> http://cjoint.com/data/mwlL3wfBsX.htm
>>>>
>>>> c'est avérée moins rapide
>>>> à titre perso je ne m'attendais pas à un écart aussi grand
>>>>
>>>>
>>>>
>>>> merci remy
>>> La version C est *moins* rapide ?
>>> Quel est l'écart ?
>> il te faut la libgmp voir avec synaptic et gcc
>>
>>
>> gcc -o jumeaux jumeaux.c -lgmp
>> time ./jumeaux
>>
>> real 0m34.833s
>> user 0m34.230s
>> sys 0m0.000s
>> :~/Bureau/cJumeaux$
>>
>> javac jumeaux.java
>> time java jumeaux
>>
>> real 0m12.011s
>> user 0m12.429s
>> sys 0m0.416s
>> :~/Bureau/cJumeaux$
>
> Je n'ai pas vérifié les deux implémentations, mais c'est étrange.
> sur ce genre de calculs en général ça va plus vite en C. Mais c'est
> difficile à comparer en utilisant des bibliothèques externes,
> peut-être que ce sont elles qui sont en cause. Enfin ce n'est pas
> très important...
>
> Par contre pour des programmes qui ont besoin de faire des calculs
> plus rapides, tu pourrait ajouter -O2 dans ta compilation avec gcc
> et -server dans le lancement de ta JVM.
>
>
o2 me retourne une tripotée erreur
[... plein d'erreurs]
Non, pas comme ça :)
Il faut garder le -o pour créer les objets, mais ajouter -O2 (avec un O
majuscule) pour activer les optimisations lors de la compilation.
Après si c'est une bibliothèque externe qui consomme le temps de
calcul ça ne changera pas grand chose.
Le Tue, 22 Dec 2009 15:06:16 +0100
remy <remy@fctpas.fr> a écrit :
Yliur a écrit :
> Le Tue, 22 Dec 2009 12:17:43 +0100
> remy <remy@fctpas.fr> a écrit :
>
>> Yliur a écrit :
>>> Le Tue, 22 Dec 2009 11:52:21 +0100
>>> remy <remy@fctpas.fr> a écrit :
>>>
>>>> bonjour
>>>>
>>>> vous ne connaitriez pas un bout de code multi thread
>>>> java qui ferait un test de primalité
>>>> histoire de me servir de tous les coeurs de la machine
>>>> c'est pour booster un peu le code
>>>>
>>>> http://cjoint.com/data/mwlRFNicX7.htm
>>>>
>>>> vu que la même implémentation en c
>>>> http://cjoint.com/data/mwlL3wfBsX.htm
>>>>
>>>> c'est avérée moins rapide
>>>> à titre perso je ne m'attendais pas à un écart aussi grand
>>>>
>>>>
>>>>
>>>> merci remy
>>> La version C est *moins* rapide ?
>>> Quel est l'écart ?
>> il te faut la libgmp voir avec synaptic et gcc
>>
>>
>> gcc -o jumeaux jumeaux.c -lgmp
>> time ./jumeaux
>>
>> real 0m34.833s
>> user 0m34.230s
>> sys 0m0.000s
>> remy@remy-desktop:~/Bureau/cJumeaux$
>>
>> javac jumeaux.java
>> time java jumeaux
>>
>> real 0m12.011s
>> user 0m12.429s
>> sys 0m0.416s
>> remy@remy-desktop:~/Bureau/cJumeaux$
>
> Je n'ai pas vérifié les deux implémentations, mais c'est étrange.
> sur ce genre de calculs en général ça va plus vite en C. Mais c'est
> difficile à comparer en utilisant des bibliothèques externes,
> peut-être que ce sont elles qui sont en cause. Enfin ce n'est pas
> très important...
>
> Par contre pour des programmes qui ont besoin de faire des calculs
> plus rapides, tu pourrait ajouter -O2 dans ta compilation avec gcc
> et -server dans le lancement de ta JVM.
>
>
o2 me retourne une tripotée erreur
[... plein d'erreurs]
Non, pas comme ça :)
Il faut garder le -o pour créer les objets, mais ajouter -O2 (avec un O
majuscule) pour activer les optimisations lors de la compilation.
Après si c'est une bibliothèque externe qui consomme le temps de
calcul ça ne changera pas grand chose.
Le Tue, 22 Dec 2009 15:06:16 +0100
remy a écrit :Yliur a écrit :
> Le Tue, 22 Dec 2009 12:17:43 +0100
> remy a écrit :
>
>> Yliur a écrit :
>>> Le Tue, 22 Dec 2009 11:52:21 +0100
>>> remy a écrit :
>>>
>>>> bonjour
>>>>
>>>> vous ne connaitriez pas un bout de code multi thread
>>>> java qui ferait un test de primalité
>>>> histoire de me servir de tous les coeurs de la machine
>>>> c'est pour booster un peu le code
>>>>
>>>> http://cjoint.com/data/mwlRFNicX7.htm
>>>>
>>>> vu que la même implémentation en c
>>>> http://cjoint.com/data/mwlL3wfBsX.htm
>>>>
>>>> c'est avérée moins rapide
>>>> à titre perso je ne m'attendais pas à un écart aussi grand
>>>>
>>>>
>>>>
>>>> merci remy
>>> La version C est *moins* rapide ?
>>> Quel est l'écart ?
>> il te faut la libgmp voir avec synaptic et gcc
>>
>>
>> gcc -o jumeaux jumeaux.c -lgmp
>> time ./jumeaux
>>
>> real 0m34.833s
>> user 0m34.230s
>> sys 0m0.000s
>> :~/Bureau/cJumeaux$
>>
>> javac jumeaux.java
>> time java jumeaux
>>
>> real 0m12.011s
>> user 0m12.429s
>> sys 0m0.416s
>> :~/Bureau/cJumeaux$
>
> Je n'ai pas vérifié les deux implémentations, mais c'est étrange.
> sur ce genre de calculs en général ça va plus vite en C. Mais c'est
> difficile à comparer en utilisant des bibliothèques externes,
> peut-être que ce sont elles qui sont en cause. Enfin ce n'est pas
> très important...
>
> Par contre pour des programmes qui ont besoin de faire des calculs
> plus rapides, tu pourrait ajouter -O2 dans ta compilation avec gcc
> et -server dans le lancement de ta JVM.
>
>
o2 me retourne une tripotée erreur
[... plein d'erreurs]
Non, pas comme ça :)
Il faut garder le -o pour créer les objets, mais ajouter -O2 (avec un O
majuscule) pour activer les optimisations lors de la compilation.
Après si c'est une bibliothèque externe qui consomme le temps de
calcul ça ne changera pas grand chose.
JKB a écrit :Le 22-12-2009, ? propos de
Re: recherche code multi thread java pour test de primalite,
remy ?crivait dans fr.comp.lang.java :Yliur a écrit :Le Tue, 22 Dec 2009 11:52:21 +0100
remy a écrit :bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
Je t'ai déjà dit de commencer par coller in -O3 sur la compilation
de la libgmp et la même chose sur ton code (encore qu'en
l'occurrence, ça ne devrait pas changer grand'chose pour ton code).
Avoir une telle différence tend à montrer qu'il y a un loup.gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
:~/Bureau/cJumeaux$Et pour le test, comment le fais-tu ? Ça ne devrait pas être difficile
à distribuer.
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Je t'ai déjà dit aussi qu'avec le même algorithme de base, on peut
coder des choses qui ont des performances parfaitement divergentes.
JKB
arrêt de prendre le gens pour des con
JKB a écrit :
Le 22-12-2009, ? propos de
Re: recherche code multi thread java pour test de primalite,
remy ?crivait dans fr.comp.lang.java :
Yliur a écrit :
Le Tue, 22 Dec 2009 11:52:21 +0100
remy <remy@fctpas.fr> a écrit :
bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
Je t'ai déjà dit de commencer par coller in -O3 sur la compilation
de la libgmp et la même chose sur ton code (encore qu'en
l'occurrence, ça ne devrait pas changer grand'chose pour ton code).
Avoir une telle différence tend à montrer qu'il y a un loup.
gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
remy@remy-desktop:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
remy@remy-desktop:~/Bureau/cJumeaux$
Et pour le test, comment le fais-tu ? Ça ne devrait pas être difficile
à distribuer.
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Je t'ai déjà dit aussi qu'avec le même algorithme de base, on peut
coder des choses qui ont des performances parfaitement divergentes.
JKB
arrêt de prendre le gens pour des con
JKB a écrit :Le 22-12-2009, ? propos de
Re: recherche code multi thread java pour test de primalite,
remy ?crivait dans fr.comp.lang.java :Yliur a écrit :Le Tue, 22 Dec 2009 11:52:21 +0100
remy a écrit :bonjour
vous ne connaitriez pas un bout de code multi thread
java qui ferait un test de primalité
histoire de me servir de tous les coeurs de la machine
c'est pour booster un peu le code
http://cjoint.com/data/mwlRFNicX7.htm
vu que la même implémentation en c
http://cjoint.com/data/mwlL3wfBsX.htm
c'est avérée moins rapide
à titre perso je ne m'attendais pas à un écart aussi grand
merci remy
La version C est *moins* rapide ?
Quel est l'écart ?
il te faut la libgmp voir avec synaptic et gcc
Je t'ai déjà dit de commencer par coller in -O3 sur la compilation
de la libgmp et la même chose sur ton code (encore qu'en
l'occurrence, ça ne devrait pas changer grand'chose pour ton code).
Avoir une telle différence tend à montrer qu'il y a un loup.gcc -o jumeaux jumeaux.c -lgmp
time ./jumeaux
real 0m34.833s
user 0m34.230s
sys 0m0.000s
:~/Bureau/cJumeaux$
javac jumeaux.java
time java jumeaux
real 0m12.011s
user 0m12.429s
sys 0m0.416s
:~/Bureau/cJumeaux$Et pour le test, comment le fais-tu ? Ça ne devrait pas être difficile
à distribuer.
disons que j'ai actuellement la flemme de coder mon propre test de
primalité donc j'utilise celui qui est fourni de base
dans gmp et biginteger ce qui si j'en crois mes lectures ils utilisent
tous les 2 un test de primalité Miller-Rabin
http://fr.wikipedia.org/wiki/Test_de_primalit%C3%A9_de_Miller-Rabin
Je t'ai déjà dit aussi qu'avec le même algorithme de base, on peut
coder des choses qui ont des performances parfaitement divergentes.
JKB
arrêt de prendre le gens pour des con