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
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
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.

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".