Skip to content

Commit

Permalink
WIP step 4
Browse files Browse the repository at this point in the history
Nom des fichiers de profiling:
- ajouter le nombre d'individus et de variables dans  le nom du fichier
  - pour distinguer les variantes de scénario avec un meme dictionnaire
- impact dans CCCoclusteringBuilder::ComputeCoclustering: GetProfiler()-> Start(filename)

Profiling: MB
- ajouter une catégorie de profiling "Save best solution", pour avoir une stats sur le nombre d'améliorations
- impact dans CCCoclusteringBuilder::HandleOptimizationStep
  • Loading branch information
marcboulle committed Oct 4, 2023
1 parent e3b41ec commit 147bef1
Showing 1 changed file with 20 additions and 5 deletions.
25 changes: 20 additions & 5 deletions src/Learning/MODL_Coclustering/CCCoclusteringBuilder.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -355,6 +355,7 @@ boolean CCCoclusteringBuilder::ComputeCoclustering()
CCCoclusteringOptimizer dataGridOptimizer;
KWDataGrid optimizedDataGrid;
KWDataGridManager dataGridManager;
ALString sProfileFileName;
ALString sTmp;
// CH IV Begin
ObjectDictionary odObservationNumbers;
Expand Down Expand Up @@ -454,9 +455,18 @@ boolean CCCoclusteringBuilder::ComputeCoclustering()
// Choix du fichier de trace a parametrer
if (bProfileOptimisation)
{
// Nom du fichier de profiling, avec le nombre d'individus et de variables
sProfileFileName = "C:/temp/DataGridOptimizationProfiling";
sProfileFileName += GetDatabase()->GetClassName();
sProfileFileName += '(';
sProfileFileName += IntToString(initialDataGrid->GetAttributeAt(0)->GetInitialValueNumber());
sProfileFileName += ',';
sProfileFileName += IntToString(initialDataGrid->GetInnerAttributes()->GetInnerAttributeNumber());
sProfileFileName += ").txt";

// Lancement du profiling
KWDataGridOptimizer::GetProfiler()->SetTrace(true);
KWDataGridOptimizer::GetProfiler()->Start("C:/temp/DataGridOptimizationProfiling" +
GetDatabase()->GetClassName() + ".txt");
KWDataGridOptimizer::GetProfiler()->Start(sProfileFileName);
}

// Trace de debut d'optimisation, avec informations sur la grille initiale
Expand Down Expand Up @@ -1656,6 +1666,10 @@ void CCCoclusteringBuilder::HandleOptimizationStep(const KWDataGrid* optimizedDa
(bIsLastSaving and ((coclusteringDataGrid == NULL) or (coclusteringDataGrid->GetGranularity() <
initialGranularizedDataGrid->GetGranularity())))))
{
// Ajout de trace lie au profiling
KWDataGridOptimizer::GetProfiler()->BeginMethod("Save best solution");

// Memorisation du meilleur cout
dAnyTimeBestCost = dCost;

// Sauvegarde de la grille
Expand Down Expand Up @@ -1766,9 +1780,6 @@ void CCCoclusteringBuilder::HandleOptimizationStep(const KWDataGrid* optimizedDa
bWriteOk = coclusteringReport.WriteJSONReport(sReportFileName, coclusteringDataGrid);
JSONFile::SetVerboseMode(true);

// Ajout de trace lie au profiling
KWDataGridOptimizer::GetProfiler()->WriteKeyString("NEW BEST LEVEL", DoubleToString(dLevel));

// Sauvegarde au format Khc necessaire
if (bWriteOk and GetExportAsKhc())
{
Expand All @@ -1784,6 +1795,10 @@ void CCCoclusteringBuilder::HandleOptimizationStep(const KWDataGrid* optimizedDa
// Memorisation du nouveau nom du dernier fichier sauvegarde
if (bWriteOk)
sLastActualAnyTimeReportFileName = sReportFileName;

// Ajout de trace lie au profiling
KWDataGridOptimizer::GetProfiler()->WriteKeyString("New best level", DoubleToString(dLevel));
KWDataGridOptimizer::GetProfiler()->EndMethod("Save best solution");
}
else
{
Expand Down

0 comments on commit 147bef1

Please sign in to comment.