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
| program DDD_Launch;
{$mode objfpc}{$H+}
uses
CRT,VARIANTS,Math,SysUtils,Dos,
Process,Windows;
{ you can add units after this }
Var I,J:Integer;
Arguments : String;
Parameters, CalculSplit : Array [1..80] of string;
begin
// Paramètres permettant de segmenter un calcul de 3 loops imbriquées. Ces paramètres segmentent la loop la plus externe.
// je n'ai pas segmenté au-delà de 27 process. Avec 27 l'utilisation de la CPU était déjà a 100%.
CalculSplit[1] := '1 3';
CalculSplit[2] := '4 6';
CalculSplit[3] := '7 9';
CalculSplit[4] := '10 12';
CalculSplit[5] := '13 15';
CalculSplit[6] := '16 18';
CalculSplit[7] := '19 21';
CalculSplit[8] := '22 24';
CalculSplit[9] := '25 27';
CalculSplit[10] := '28 30';
CalculSplit[11] := '31 33';
CalculSplit[12] := '34 36';
CalculSplit[13] := '37 39';
CalculSplit[14] := '40 42';
CalculSplit[15] := '43 45';
CalculSplit[16] := '46 48';
CalculSplit[17] := '49 51';
CalculSplit[18] := '52 54';
CalculSplit[19] := '55 57';
CalculSplit[20] := '58 60';
CalculSplit[21] := '61 63';
CalculSplit[22] := '64 66';
CalculSplit[23] := '67 69';
CalculSplit[24] := '70 72';
CalculSplit[25] := '73 75';
CalculSplit[26] := '76 78';
CalculSplit[27] := '79 80';
// Attention le caractere blance entre le ' et le 0 ci-dessous est tres important pour un passage correcte des parametres
Arguments := ' 0 10 0.001 0.4 1000000 3438178.917719 -19.33';
For I := 1 to 27 Do
Begin
Parameters[I] := CalculSplit[I] + Arguments;
J := ShellExecute(0, 'open','C:\Users\Yaacov\Desktop\DDD5mnTest\DDD5mnTest', Pchar(Parameters[I]), nil, 1);
End ;
End. |
Partager