Script tournant bien sur Linux Cpu i3. mais pas sur W10 Cpu i7. Quelle solution?

Fermé
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020 - 8 oct. 2020 à 20:34
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020 - 23 oct. 2020 à 08:09
Bonjour,

j'utilise un petit script avec des fonctions "process" pour streesser tous les Cpu d'une machine.
Le script ne fonctionne pas sur un i7 sous Windows.
Quel modif apporter a ce script pour reussir a le faire tourner sous windows ?
Merci !!

code joint et rapport du bug :

from multiprocessing import Process
import os
import math
import time

depart = time.perf_counter()

# 40 sec pour 100M de fois

def calc():
	for i in range(0, 1000):
			i = i + 123456789
			i = i * 123456789
			i = i / 1.3333

processes = []

for i in range(os.cpu_count()):
	print('registering PROCESS %d' % i)
	processes.append(Process(target=calc))

for process in processes:
	process.start()

for process in processes:
	process.join()

final = time.perf_counter()
    # Print results
print()
print(f'PROCESS Estimate is {round(final-depart,4)} seconds(s)')



Bug repport :

registering PROCESS 1
registering PROCESS 2
registering PROCESS 3
registering PROCESS 4
registering PROCESS 5
registering PROCESS 6
registering PROCESS 7
registering PROCESS 0
registering PROCESS 1
Traceback (most recent call last):
registering PROCESS 2
File "<string>", line 1, in <module>
registering PROCESS 3
registering PROCESS 4
registering PROCESS 5
registering PROCESS 6
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 116, in spawn_main
registering PROCESS 7
exitcode = _main(fd, parent_sentinel)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 125, in _main
Traceback (most recent call last):
File "<string>", line 1, in <module>
prepare(preparation_data)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 236, in prepare
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 116, in spawn_main
exitcode = _main(fd, parent_sentinel)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 125, in _main
prepare(preparation_data)
_fixup_main_from_path(data['init_main_from_path'])
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 236, in prepare
main_content = runpy.run_path(main_path,
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 265, in run_path
_fixup_main_from_path(data['init_main_from_path'])
return _run_module_code(code, init_globals, run_name,
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 97, in _run_module_code
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 287, in _fixup_main_from_path
_run_code(code, mod_globals, init_globals,
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 87, in _run_code
exec(code, run_globals)
File "C:\Users\Terence\Desktop\enge-processes.py", line 27, in <module>
process.start()
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\process.py", line 121, in start
self._popen = self._Popen(self)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\context.py", line 224, in _Popen
return _default_context.get_context().Process._Popen(process_obj)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\context.py", line 327, in _Popen
registering PROCESS 0
registering PROCESS 1
registering PROCESS 2
registering PROCESS 3
registering PROCESS 4
registering PROCESS 5
registering PROCESS 6
registering PROCESS 7
return Popen(process_obj)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\popen_spawn_win32.py", line 45, in __init__
main_content = runpy.run_path(main_path,
Traceback (most recent call last):
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\runpy.py", line 265, in run_path
prep_data = spawn.get_preparation_data(process_obj._name)
File "C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.8_3.8.1776.0_x64__qbz5n2kfra8p0\lib\multiprocessing\spawn.py", line 154, in get_prepara



Configuration: Linux / Chrome 84.0.4147.105
A voir également:

9 réponses

yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
8 oct. 2020 à 20:51
bonjour,
as-tu écrit ce code?
dans quel contexte fais-tu cela?
0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
8 oct. 2020 à 22:33
au fait - avec un range de 1.000.000, le code retroune quel temps en seconde sur ta machine ?
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
9 oct. 2020 à 08:42
0.7127 seconds(s)
0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
8 oct. 2020 à 22:17
je l ai adapté, c'est pour comparer la vitesse de calcul sur des milliers de loops d'une machine a une autre. Choix d achat d'une machine...traitement de calcul sur de grande liste d enregistrement. pourquoi la question ?
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
9 oct. 2020 à 08:43
pour t'aider au mieux.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
9 oct. 2020 à 08:47
ceci fonctionne mieux chez moi:
from multiprocessing import Process
import os
import math
import time
def calc():
    for i in range(0, 1000):
            i = i + 123456789
            i = i * 123456789
            i = i / 1.3333
if __name__ == '__main__':
    depart = time.perf_counter()
    processes = []
    for i in range(os.cpu_count()):
        print('registering PROCESS %d' % i)
        processes.append(Process(target=calc))
    for process in processes:
        process.start()
    for process in processes:
        process.join()
    final = time.perf_counter()
        # Print results
    print(f'PROCESS Estimate is {round(final-depart,4)} seconds(s)')
0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
21 oct. 2020 à 00:29
Bonjour @yg-be

Je reviens vers toi, aux vu de l'affichage que j'obtient avec le script du dessus.
celui-ci, renvoi un calcul calcul] du type :

10000 loops avec 1 core = 1 sec et 4 core = 4 sec....

la ou en fait je cherche a obtenir 1 core= 1 sec. et 4 core = 0.25 sec

Donc, une répartitions des 10000 loops sur 4 coeurs, - sinon, ce n'est pas un calcul multi-processeurs avec au final
un "temps de calcul global" environ 4 fois plus rapide, n'est-ce pas
...est-ce que tu vois ce que je veut dire ?
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
21 oct. 2020 à 13:08
il y a eu beaucoup de versions du script, je ne sais pas donc si ton calcul est correct.
en voyant les chiffres, j'aurais tendance à suspecter que le calcul n'est pas correct.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
21 oct. 2020 à 13:16
as-tu essayé ceci:
from multiprocessing import Process
import os
import math
import time
loops=5*10**6
def calc():
    for i in range(0, loops):
            i = i + 123456789
            i = i * 123456789
            i = i / 1.3333
if __name__ == '__main__':
    for pc in range(1,os.cpu_count()+5):
        depart = time.perf_counter()
        processes = []
        for i in range(pc):
            #print('registering PROCESS %d' % i)
            processes.append(Process(target=calc))
        for process in processes:
            process.start()
        for process in processes:
            process.join()
        final = time.perf_counter()
            # Print results
        mlps=round(pc*loops/(final-depart)/10**6,1)
        print(f'{round(final-depart,4)} seconds(s) with {pc} processes each doing {loops} loops : {mlps} Mloop/s')
0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
Modifié le 22 oct. 2020 à 03:25
oui, je pense..
ne trouvant pas ...je suis repassé a la version GO,
et la !! "flash ben-oui !!... il suffirait de rajouter une division manquante sur le calcul estimée du temps pour que cela "colle" :) donc .... elapsed := time.Since(start) / (4) << nombre de core utilisés - nechpas ?!!
(enfin j imagine que cela viendrait de la...)
je retoucherais le script sous python - mais sa lenteur intrinseque me pousse a continuer sous Go *je crois comprendre que Cython serait pas mal rapide mais pas vraiment mis a jour....
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
22 oct. 2020 à 13:16
il ne s'agit pas du nombre de cores utilisés, mais du nombre de processus.
au lieu de diviser le temps par le nombre de processus, qui produit une valeur qui n'a aucune signification, il est peut-être plus approprié, si ce n'est déjà fait, de compter le nombre total de loops, pas le nombre de loops pas processus.
si tu calculais en loops/secondes, ce serait beaucoup plus clair.
si tu veux être conseillé, partage ton code.
0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
Modifié le 9 oct. 2020 à 11:02
Alors, c est intéressant mais les temps que j obtient sont moindres (du a Linux je suppose.)

Questions :
ta machine est-ELLE sous Windows10 ? (pas de bug lors du test alors)
Quel est le Modele de son CPU/Freq/core ?

ici sur un i3 /8Gb Ram j'obient pour...
1M/0.5852
100M/39.8392 (...61.0476 sec /PC Celeron)
550M/210.5996 sec
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
9 oct. 2020 à 11:35
W10, i7, 6 cores, 12 logical processors, de 3 à 3.9 GHz pendant les tests

il y a 6 cores, et os.cpu_count donne 12, le nombre de logical processors

PROCESS Estimate is 2.3616 seconds(s) for 10000000 loops with 1 processes
PROCESS Estimate is 2.6499 seconds(s) for 10000000 loops with 2 processes
PROCESS Estimate is 2.5299 seconds(s) for 10000000 loops with 3 processes
PROCESS Estimate is 2.4333 seconds(s) for 10000000 loops with 4 processes
PROCESS Estimate is 2.5475 seconds(s) for 10000000 loops with 5 processes
PROCESS Estimate is 2.8449 seconds(s) for 10000000 loops with 6 processes
PROCESS Estimate is 3.1563 seconds(s) for 10000000 loops with 7 processes
PROCESS Estimate is 3.612 seconds(s) for 10000000 loops with 8 processes
PROCESS Estimate is 4.0656 seconds(s) for 10000000 loops with 9 processes
PROCESS Estimate is 4.6616 seconds(s) for 10000000 loops with 10 processes
PROCESS Estimate is 5.0652 seconds(s) for 10000000 loops with 11 processes
PROCESS Estimate is 5.5817 seconds(s) for 10000000 loops with 12 processes
PROCESS Estimate is 6.6134 seconds(s) for 10000000 loops with 13 processes
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
Modifié le 9 oct. 2020 à 11:49
Ok, le collegue a un i7 aussi, mais chez lui ca plante...
ah, mais il a 4 core/8threads. 4ghz
(et peut etre overclockee) :)

i3 : 10M / 3.9559 sec !
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
9 oct. 2020 à 12:02
cela plante avec quelle erreur?
0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
9 oct. 2020 à 12:03
celle du log au debut du post : Bug repport :
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
9 oct. 2020 à 12:06
les processeurs sont devenus plus performants parce qu'ils font plus rapidement des opérations plus complexes.
si tu ne fais que des opérations si simples, tu n'as peut-être pas besoin de processeur performant.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
9 oct. 2020 à 12:07
bizarre, moi j'ai éliminé cette erreur avec le code en #6.
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
9 oct. 2020 à 12:08
4 cores/8 threads: teste avec 4 process, pas 8!
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
Modifié le 9 oct. 2020 à 12:24
en fait, si tu veux comparer les performances des ordis, tu as intérêt à compter le nombre de boucles par seconde:
2.3883 seconds(s) for 10000000 loops with 1 processes: 4.2 Mloop/s
2.3668 seconds(s) for 10000000 loops with 2 processes: 8.5 Mloop/s
2.4471 seconds(s) for 10000000 loops with 3 processes: 12.3 Mloop/s
2.493 seconds(s) for 10000000 loops with 4 processes: 16.0 Mloop/s
2.9246 seconds(s) for 10000000 loops with 5 processes: 17.1 Mloop/s
2.7775 seconds(s) for 10000000 loops with 6 processes: 21.6 Mloop/s
3.2584 seconds(s) for 10000000 loops with 7 processes: 21.5 Mloop/s
3.6383 seconds(s) for 10000000 loops with 8 processes: 22.0 Mloop/s
4.1269 seconds(s) for 10000000 loops with 9 processes: 21.8 Mloop/s
4.5336 seconds(s) for 10000000 loops with 10 processes: 22.1 Mloop/s
5.0396 seconds(s) for 10000000 loops with 11 processes: 21.8 Mloop/s
5.6006 seconds(s) for 10000000 loops with 12 processes: 21.4 Mloop/s
6.4755 seconds(s) for 10000000 loops with 13 processes: 20.1 Mloop/s
0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
Modifié le 9 oct. 2020 à 12:33
comment tu obtient les Loops.Sec. ? dans ma fenêtre...il ne met que :
registering PROCESS 0
registering PROCESS 1
registering PROCESS 2
registering PROCESS 3
PROCESS Estimate is 1.4697 seconds(s
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
9 oct. 2020 à 12:46
from multiprocessing import Process
import os
import math
import time
loops=10**7
def calc():
    for i in range(0, loops):
            i = i + 123456789
            i = i * 123456789
            i = i / 1.3333
if __name__ == '__main__':
    for pc in range(1,os.cpu_count()+2):
        depart = time.perf_counter()
        processes = []
        for i in range(pc):
            #print('registering PROCESS %d' % i)
            processes.append(Process(target=calc))
        for process in processes:
            process.start()
        for process in processes:
            process.join()
        final = time.perf_counter()
            # Print results
        mlps=round(pc*loops/(final-depart)/10**6,1)
        print(f'{round(final-depart,4)} seconds(s) for {loops} loops with {pc} processes: {mlps} Mloop/s')

0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
9 oct. 2020 à 13:00
Ok; merci @yg_be... je vais tester cela demain....Kaput/dodo !
0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
Modifié par gobibigo le 9/10/2020 à 21:11
Ok YG,
Bon...après reflexion je trouve qu'il y a (peut-etre) du bon comme du moins bon dans les dernières modif. avant de retenter le test chez le compère i7....(en fin de journée une fois les modif ci-dessous faites si poss)

NOTE : les "4 Cpu" affichees dans le paneau ressource du moniteur de système font apparemment références aux Thread du processeur (et non au seul Die ("cpu") physique installé dans la machine)
...on verra pour les serveur multi "die" un autre jour :)

Cote modif...
Les Pro :
1/ Les Flops...ça "peut-etre" une info utile en effet si on la cadre bien dans son contexte.
(parfois les Flops avec 2 process dépassent ceux avec 3...donc bon, c est pas si clair que cela devrait l etre au final)

2/ Le test du "Matos" en temps reels; c est vrais que c'est sympa de voir la montée en charge 1 par 1 des "cpu"; on peut pas faire cela avec n importe quel outils...mais bon, utilitee ?

Les Cons :
1- Pourquoi afficher les mesure de 1...a X process, ca encombre trop...donc simplifions simplifions :) !!!

Je pense que en ne gardant QUE les 2 extrêmes ça sera largement utile et précis (et évitera les confusions)
Donc on ne garderait l'affichage pour : 1 et : Tous...
(suivant le modele de CPU installé)

Donc on garderais juste ces 2 cas de figure suivants :
1ier cas :
je veux lancer le calcul de modif. d un fichier a faire en arrière plan MAIS je veut aussi garder plus de ressource pour faire autre chose que cela :
Donc j ai besoin d'estimer combien de temps la modif prendrait juste avec 1 seul Process/Thread(cpu)..
Donc dans le moniteur de Cpu : 1 seul CPU utilisé a 100% ...et les X autres, libre.

2ieme cas :
J ai une grosse modif de fichier a faire - au plus vite - et donc j'utiliserais tous mes CPU et a 100% !
pour un modele i3 / Core 2 / Thread 4. = 4 CPU utilisé a 100%

Question :
Comment ne garder que le Stress sur le 1er et la derniere mesure dans ce Benchmark ?
(1 ou Tout les Cpu)
Idéalement, laisser le script découvrir le nombre de Thread maxi, sans devoir a le saisir a la main.

Voila, merci pour le gros coup de pouce !
:)
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476 > gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
9 oct. 2020 à 22:49
c'est tellement simple que je suis surpris que tu poses la question:
from multiprocessing import Process
import os
import math
import time
loops=10**7
def calc():
    for i in range(0, loops):
            i = i + 123456789
            i = i * 123456789
            i = i / 1.3333
if __name__ == '__main__':
    for pc in (1,os.cpu_count()):
        depart = time.perf_counter()
        processes = []
        for i in range(pc):
            #print('registering PROCESS %d' % i)
            processes.append(Process(target=calc))
        for process in processes:
            process.start()
        for process in processes:
            process.join()
        final = time.perf_counter()
            # Print results
        mlps=round(pc*loops/(final-depart)/10**6,1)
        print(f'{round(final-depart,4)} seconds(s) for {loops} loops with {pc} processes: {mlps} Mloop/s')

0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
Modifié le 10 oct. 2020 à 07:14
super ... oui c'est tout a fait ça !
pour ma part n'ayant fait que du dev MSaccess... je découvre mon 1er "vrais" langage de dev. avec python depuis 2 mois...et les process/thread ...depuis 2 jours..!
:)
entre temps...je fait des aller-retour vers Go/Erlang/kotlin et je lit beaucoup dessus pour voir comment ce benchmark maison pourrait aussi etre réplique sous ces langages bien que les méthodes sous chacun soit différentes (concurence en lieu du paralelisme)..mais c'est en fait la vitesse finale d'execution qu'il m’intéresserait de connaitre a données et plateformes égales...

Donc si possible j'aimerais confronter le script Go ou Erlang a celui de Python dans ce cas de calcul précis.
Python est beaucoup plus simple ...et j'ai lu qu'il serait aussi "plus lent" que Go/Erlang, mais je souhaiterais le vérifier...

La première pârtie brute de ce projet sous python dans tout les cas a été beaucoup plus simple et rapide grace a toi et a l'autre contributeur ...et github.
je continuerais a chercher a créer son équivalent sous un autre langage d’exécution rapide, tte suggestion bienvenue.
Merci pour le grand coup de pouce en tout cas...cela fait longtemps que tu code en Python ? besoins professionnels ou simple hobby ?
:)
0
duncarpc Messages postés 141 Date d'inscription mardi 11 décembre 2018 Statut Membre Dernière intervention 14 mai 2021 11
9 oct. 2020 à 12:37
salut utilises CPUStressMT, il t'offre meme le pourcentage de stresse
0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020
Modifié le 9 oct. 2020 à 12:56
Ahhh !!!! :)
c est pas dans mon script ca :) !
... ca ne m'intéresse pas ces benchmarks, je connais...
Ils font appel a des calcul sur des formules dont on a aucune utilitée en général, Fibonaci et compagnie...PRRrtttt, c est pas mon pain quotidien - !!
Ce qui m'importe c'est de comparer des opérations précises que j'utiliserais vraiment sur des fichiers ou des bases de données dont je connais la taille de X enregistrement et avec des opérations genre comptabilité ou de modif de contenu soit... division, multiplication ou concaténation bref...du concret de tout les jours... pas des benchmark de Geek sur des calculs de trucs improbables !
...même s'il devrait y avoir surement une corrélations d'une manière ou d'une autre (...ça reste a démontrer)
C'est comme les fameux benchmark des moteurs de VW sensés polluer moins ...en Labo...jusqu'a ce qu'on vérifie ...en conditions réelles tout cela, n'est-ce pas ? :)
:)
0
yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024 1 476
9 oct. 2020 à 22:46
attention, faire des opérations sur une seule variable, cela n'est pas la même chose que de faire des opérations sur un ensemble d'enregistrements!
0
gobibigo Messages postés 21 Date d'inscription jeudi 8 octobre 2020 Statut Membre Dernière intervention 23 octobre 2020 > yg_be Messages postés 22724 Date d'inscription lundi 9 juin 2008 Statut Contributeur Dernière intervention 25 avril 2024
Modifié le 9 oct. 2020 à 23:10
oui, tout a fait, je comprend...
l utilisation d une valeur "i" ici est arbitraire, de même que la multiplication/adition/division, etc.

Dans un cas réel :
- chaque ligne ferait très certainement appel a plusieurs valeurs distinctes non-répétitives, et quelques opération etc...
- Au moins 1 chargement de données en mémoire (fichier ou db)
- + oper lecture/écriture...

. Pour le moment, c 'est une simulation d’opération de calcul mais effectivement on pourra rendre le test vraiment réaliste par la suite en joignant un/des fichier/s texte/db de plusieurs millier/millions de lignes... par la suite et en lui appliquant diverses opérations type.
...c'est envisagé :)
0