Bonjour à vous,
J'ai jamais eu de problème auparavant concernant ce magnifique module.
Ce n'est pas la première fois que je l'utilise.
Je ne suis pas fou, du moins je crois.
J'essaye de diviser le nombre de fichiers dans un répertoire, par le nombre de processeurs que je possèdes.
À l'aide du module mpi4py.
mais ce n'est pas important. ( je crois)
J'ai admettons 76 fichier pour 20 cores.
normallement 76/20 = 3.8 = 4
avec math.ceil(len(nb_files) / nb_cores )
ou round(len(nb_files) / nb_cores )
J'obtiens toujours 3 ou 3.000000
Même si je met tout mes variables en float() ou int()
Avec tous la documentations concernant ce module, je me suis presque demandé si c'étais mon python2.7 qui était perdu. J'ai donc essayer sur deux machines, toujours le même résultat.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 # -*- coding: utf-8 -*- #nombre_fichier_par_cores.py import os import math #Nom du dossier mydir = os.getcwd() nb_files_sans_func = 76 #Fonction lister les fichiers def list_files(dossier): path, dirs, files = os.walk(dossier).next() return files if os.path.isdir(mydir): size = 20 #Admettons que je suis dans MPI et que j'ai 20 cores all_files = list_files(mydir) # Liste de tous les fichiers nb_files = len(all_files) # Ce qui me donne 76 fichiers #Les testes totale_par_cores = math.ceil(nb_files / size) #Me donne 3 totale_par_cores2 = round(nb_files / size ) # Donne 3 total = float() total = math.ceil(len(all_files) / size ) #Me donne 3.00000 print size # 20 print nb_files # 76 ( pour les tests prennez nb_files_sans_func ) print nb_files / size # 3 .... jamais 3.8 print totale_par_cores # si plus de fichier que de cores print totale_par_cores2 # pareil print total print'-------' print nb_files_sans_func / size print math.ceil(nb_files_sans_func / size) #Je comprend plus rien, j'ai jamais eu de problème avant. else: print'nothing'
Merci pour votre aide.
Partager