Bonjour à tous,
Je rencontre actuellement une petite difficulté quand mon ordinateur se met en pause.
L'idée est la suivante : j'ai écrit un script matlab qui "gere" un simulateur ecrit en C.
J'ai maintenant besoin de lancer ce simulateur avec de nombreux jeux de paramètres, et même de le lancer plusieurs fois par jeu de paramètres afin de faire des etudes statistiques sur les entrées (en un mot comme en 100 je fais du Monte-Carlo).
Le nombre ttal de fois où je lance mon simulateur est de l'ordre de 50*81 = 4050fois, et chaque simu dure à peu près 2 min. Du coup ça me fait grosso modo 140H de temps d'exécution
le code que j'utilise est le suivant
Le problème que je rencontre est le suivant : quand le soir je pars, je dois verouiller mon écran, sinon mon chef me mange en complément de son petit déjeuner. Après 2 h de verouillage, l'ordi se met hors tension. Et quand je reviens le matin, la simu qui était en cours avant la mise hors tension est plantée, bloquant toute la suite de l'execution et me faisant perdre de précieuses heures.
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
47
48
49
50
51
52
53
54
55
56
57
58
59
60 for i1=1:3 for i2=1:3 for i3=1:3 for i4=1:3 % Chaine de caractère correspondant à la simu Chaine = [num2str(i1) num2str(i2) num2str(i3) num2str(i4)]; %calcul des Params avec lesquels la simu sera lancee %creation du repertoire contenant les entrees nom_rep_in = fullfile(pname,'in',Chaine); mkdir(nom_rep_in); %creation du repertoire de sortie correspondant nom_rep_out = fullfile(pname,'out',Chaine); mkdir(nom_rep_out); %ecriture des fichiers d'entee %% creation des batchs de copie et de lancement %copie des entrees %% lancement des batchs oldrep = pwd; cd(pname) !copy_in_optim.bat for j = 1:Nb_simus batFile = 'DASH1.bat - Raccourci.lnk'; startInfo = System.Diagnostics.ProcessStartInfo('cmd.exe', sprintf('/c "%s"', batFile)); if choix_bin == 1 startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Normal; %// si on le veut visible, sinon c'est hidden. else startInfo.WindowStyle = System.Diagnostics.ProcessWindowStyle.Hidden; %// si on le veut visible, sinon c'est hidden. end proc = System.Diagnostics.Process.Start(startInfo); if isempty(proc) error('Failed to launch process'); end while true if proc.HasExited fprintf('\nProcess exited with status %d\n', proc.ExitCode); break end fprintf([num2str(j),' ',Chaine,' ']); pause(.1); end end !copy_outMC_optim.bat cd(oldrep) clc end end end end
Ma question est : y a-t-il un moyen de faire dire a matlab que tant qu'il s'exécute, lordi ne doit pas se mettre hors tension?
Je précise que j'ai d'ores et déjà désactivé le verouillage écran automatique, et que dans les paramètres de gestion de l'alim, j'ai mis toutes les mises en veille automatiques sur "jamais".
Partager