Skip to content
Merged
Show file tree
Hide file tree
Changes from 6 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
32 changes: 32 additions & 0 deletions src/Vts.Benchmark/Benchmarks/MonteCarloSimulationBenchmarks.cs
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
using BenchmarkDotNet.Attributes;
using NLog;
using System.Collections.Generic;
using Vts.MonteCarlo;

namespace Vts.Benchmark.Benchmarks;

public class MonteCarloSimulationBenchmarks
{
private MonteCarloSimulation _simulation;

[ParamsSource(nameof(SimulationInputs))]
public SimulationInput Input { get; set; }

public static IEnumerable<SimulationInput> SimulationInputs()
{
yield return new SimulationInput { N = 100 };
// we can add more SimulationInput instances with different configurations if needed
}

[GlobalSetup]
public void Setup()
{
LogManager.SuspendLogging(); // logging can interfere with benchmark results, it is also suspended in NLog config for benchmarks

_simulation = new MonteCarloSimulation(Input);
}

[Benchmark]
public SimulationOutput RunSimulation()
=> _simulation.Run();
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,35 @@
using BenchmarkDotNet.Attributes;
using NLog;
using System.Collections.Generic;
using Vts.MonteCarlo;

namespace Vts.Benchmark.Benchmarks;

public class ParallelMonteCarloSimulationBenchmarks
{
private ParallelMonteCarloSimulation _simulation;

[ParamsSource(nameof(SimulationInputs))]
public SimulationInput Input { get; set; }

public static IEnumerable<SimulationInput> SimulationInputs()
{
yield return new SimulationInput { N = 100 };
// we can add more SimulationInput instances with different configurations if needed
}

[Params(4)] // we can add more parameters separated by commas for different CPU counts
public int NumberOfCpUs { get; set; }

[GlobalSetup]
public void Setup()
{
LogManager.SuspendLogging();

_simulation = new ParallelMonteCarloSimulation(Input, NumberOfCpUs);
}

[Benchmark]
public SimulationOutput RunSingleInParallel()
=> _simulation.RunSingleInParallel();
}
14 changes: 14 additions & 0 deletions src/Vts.Benchmark/NLog.config
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

<!-- Disable all logging -->
<rules>
<logger name="*" minlevel="Off" writeTo="null" />
</rules>

<targets>
<target xsi:type="Null" name="null" />
</targets>

</nlog>
55 changes: 36 additions & 19 deletions src/Vts.Benchmark/Program.cs
Original file line number Diff line number Diff line change
Expand Up @@ -9,23 +9,29 @@
using System;
using System.IO;
using System.Text.RegularExpressions;
using Vts.MonteCarlo;
using Vts.Benchmark.Benchmarks;

namespace Vts.Benchmark
{
public static class Program
{
/// <summary>
/// Set up execution of Monte Carlo Command Line application and run benchmark
/// collecting estimate of the Mean time of execution and Standard Deviation.
/// Output to CSV file.
/// Notes: 1) Build Vts.Benchmark in Release configuration
/// 2) Pull down enables running BenchmarkMonteCarlo or BenchmarkMonteCarloParallel
/// 3) Run with Debug tab -> Start Without Debugging
/// </summary>
/// <param name="args">command line parameters</param>
public static void Main(string[] args)
{
// Set up execution of Monte Carlo Command Line application and run benchmark
// collecting estimate of the Mean time of execution and Standard Deviation.
// Output to CSV file.
// Notes: 1) Build Vts.Benchmark in Benchmark configuration (the Post-Processor
// Program.cs will show compile errors on the CommandLine.Switch statements but this
// is okay since not included in the benchmark
// 2) Run with Debug tab -> Start Without Debugging
// check for -p or --parallel argument to run parallel benchmark
var runInParallel = args.Length > 0 && (args[0] == "-p" || args[0] == "--parallel");

// configure BenchmarkDotNet
var config = new ManualConfig()
.AddJob(new Job("Benchmark").WithCustomBuildConfiguration("Benchmark"))
.AddJob(new Job("Benchmark"))
.AddLogger(ConsoleLogger.Default)
.AddColumn(TargetMethodColumn.Method,
StatisticColumn.Mean,
Expand All @@ -35,13 +41,23 @@ public static void Main(string[] args)
.AddExporter(CsvExporter.Default, HtmlExporter.Default, MarkdownExporter.GitHub)
.AddAnalyser(EnvironmentAnalyser.Default);
config.UnionRule = ConfigUnionRule.Union;
var summary = BenchmarkRunner.Run<MonteCarloSimulation>(config);

// run the benchmark
var summary = runInParallel ?
// This line is used to run the parallel benchmark
BenchmarkRunner.Run<ParallelMonteCarloSimulationBenchmarks>(config) :
// This line is used to run the non-parallel benchmark
BenchmarkRunner.Run<MonteCarloSimulationBenchmarks>(config);

Console.WriteLine(summary);
// Read CSV file for Mean and Standard Deviation (StDev) data
var inputPath = Path.GetFullPath(Directory.GetCurrentDirectory());
const string csvFile = "\\BenchmarkDotNet.Artifacts\\results\\Vts.MonteCarlo.MonteCarloSimulation-report.csv";
var filePath = Path.GetFullPath(inputPath + csvFile);
using var reader = new StreamReader(filePath);
const string filePath = "\\BenchmarkDotNet.Artifacts\\results\\";
var csvFile = runInParallel ?
$"{typeof(ParallelMonteCarloSimulationBenchmarks).FullName}-report.csv" :
$"{typeof(MonteCarloSimulationBenchmarks).FullName}-report.csv";
var fullPath = Path.GetFullPath(inputPath + filePath + csvFile);
using var reader = new StreamReader(fullPath);
// read header line
reader.ReadLine();
// read data line
Expand All @@ -52,21 +68,22 @@ public static void Main(string[] args)
var mean = double.Parse(Regex.Match(values[1], @"-?\d+(?:\.\d+)?").Value); // has 'ms' appended
var standardDeviation = double.Parse(Regex.Match(values[3], @"-?\d+(?:\.\d+)?").Value); // has 'ms' appended
// write out result of current run and standard deviation compared against prior mean
const double priorMean = 84.0; // ms
var priorMean = runInParallel ? 8.25 : 84.0; // ms
// output 1 sigma results
Console.ForegroundColor = ConsoleColor.Cyan;
Console.Write("SUMMARY: (Mean = {0:F} ms) +/- (SD = {1:F} ms)", mean, standardDeviation);
// output if result is larger than established mean + 1-SD
if (mean > standardDeviation + priorMean)
Console.Write("SUMMARY: (Mean = {0:F} ms) +/- (3*SD = {1:F} ms)", mean, 3 *standardDeviation);
// check if mean is within 3 standard deviation about the prior mean
if (mean < priorMean - 3 * standardDeviation || mean > priorMean + 3* standardDeviation)
{
Console.ForegroundColor = ConsoleColor.Red;
Console.WriteLine(" is 1-SD > prior mean = {0:F}", priorMean);
Console.WriteLine(" is not within 3-SD of prior mean = {0:F}", priorMean);
}
else
{
Console.ForegroundColor = ConsoleColor.Cyan;
Console.WriteLine(" is within 1-SD of prior mean = {0:F}", priorMean);
Console.WriteLine(" is within 3-SD of prior mean = {0:F}", priorMean);
}
Console.ForegroundColor = ConsoleColor.White;
}
}
}
11 changes: 11 additions & 0 deletions src/Vts.Benchmark/Properties/launchSettings.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
{
"profiles": {
"BenchmarkMonteCarlo": {
"commandName": "Project"
},
"BenchmarkMonteCarloParallel": {
"commandLineArgs": "-p",
"commandName": "Project"
}
}
}
87 changes: 0 additions & 87 deletions src/Vts.sln
Original file line number Diff line number Diff line change
Expand Up @@ -25,10 +25,6 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Vts.Benchmark", "Vts.Benchm
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Benchmark|Any CPU = Benchmark|Any CPU
Benchmark|Mixed Platforms = Benchmark|Mixed Platforms
Benchmark|Win32 = Benchmark|Win32
Benchmark|x86 = Benchmark|x86
Debug|Any CPU = Debug|Any CPU
Debug|Mixed Platforms = Debug|Mixed Platforms
Debug|Win32 = Debug|Win32
Expand All @@ -37,16 +33,8 @@ Global
Release|Mixed Platforms = Release|Mixed Platforms
Release|Win32 = Release|Win32
Release|x86 = Release|x86
ReleaseWhiteList|Any CPU = ReleaseWhiteList|Any CPU
ReleaseWhiteList|Mixed Platforms = ReleaseWhiteList|Mixed Platforms
ReleaseWhiteList|Win32 = ReleaseWhiteList|Win32
ReleaseWhiteList|x86 = ReleaseWhiteList|x86
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.Benchmark|Any CPU.ActiveCfg = Debug|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.Benchmark|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.Benchmark|Win32.ActiveCfg = Debug|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.Benchmark|x86.ActiveCfg = Debug|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
Expand All @@ -61,19 +49,6 @@ Global
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.Release|Win32.ActiveCfg = Release|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.Release|Win32.Build.0 = Release|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.Release|x86.ActiveCfg = Release|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.ReleaseWhiteList|Any CPU.ActiveCfg = Release|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.ReleaseWhiteList|Mixed Platforms.ActiveCfg = Release|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.ReleaseWhiteList|Mixed Platforms.Build.0 = Release|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.ReleaseWhiteList|Win32.ActiveCfg = Release|Any CPU
{8E45BF42-5B0B-4AEF-9E63-B2966622FC23}.ReleaseWhiteList|x86.ActiveCfg = Release|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Benchmark|Any CPU.ActiveCfg = Benchmark|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Benchmark|Any CPU.Build.0 = Benchmark|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Benchmark|Mixed Platforms.ActiveCfg = Benchmark|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Benchmark|Mixed Platforms.Build.0 = Benchmark|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Benchmark|Win32.ActiveCfg = Benchmark|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Benchmark|Win32.Build.0 = Benchmark|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Benchmark|x86.ActiveCfg = Benchmark|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Benchmark|x86.Build.0 = Benchmark|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Debug|Any CPU.Build.0 = Debug|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
Expand All @@ -87,20 +62,6 @@ Global
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Release|Win32.ActiveCfg = Release|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.Release|x86.ActiveCfg = Release|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.ReleaseWhiteList|Any CPU.ActiveCfg = Release|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.ReleaseWhiteList|Any CPU.Build.0 = Release|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.ReleaseWhiteList|Mixed Platforms.ActiveCfg = Release|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.ReleaseWhiteList|Mixed Platforms.Build.0 = Release|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.ReleaseWhiteList|Win32.ActiveCfg = Release|Any CPU
{DBF062BD-84EE-4ADF-ADB7-A27B10EAB13F}.ReleaseWhiteList|x86.ActiveCfg = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Benchmark|Any CPU.ActiveCfg = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Benchmark|Any CPU.Build.0 = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Benchmark|Mixed Platforms.ActiveCfg = Debug|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Benchmark|Mixed Platforms.Build.0 = Debug|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Benchmark|Win32.ActiveCfg = Debug|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Benchmark|Win32.Build.0 = Debug|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Benchmark|x86.ActiveCfg = Debug|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Benchmark|x86.Build.0 = Debug|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Debug|Any CPU.Build.0 = Debug|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
Expand All @@ -114,16 +75,6 @@ Global
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Release|Win32.ActiveCfg = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.Release|x86.ActiveCfg = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.ReleaseWhiteList|Any CPU.ActiveCfg = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.ReleaseWhiteList|Any CPU.Build.0 = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.ReleaseWhiteList|Mixed Platforms.ActiveCfg = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.ReleaseWhiteList|Mixed Platforms.Build.0 = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.ReleaseWhiteList|Win32.ActiveCfg = Release|Any CPU
{2C5074CA-FBA8-46F1-A430-5437D67B63E5}.ReleaseWhiteList|x86.ActiveCfg = Release|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.Benchmark|Any CPU.ActiveCfg = Debug|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.Benchmark|Mixed Platforms.ActiveCfg = Debug|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.Benchmark|Win32.ActiveCfg = Debug|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.Benchmark|x86.ActiveCfg = Debug|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.Debug|Any CPU.Build.0 = Debug|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
Expand All @@ -136,15 +87,6 @@ Global
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.Release|Win32.ActiveCfg = Release|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.Release|x86.ActiveCfg = Release|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.ReleaseWhiteList|Any CPU.ActiveCfg = Release|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.ReleaseWhiteList|Mixed Platforms.ActiveCfg = Release|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.ReleaseWhiteList|Mixed Platforms.Build.0 = Release|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.ReleaseWhiteList|Win32.ActiveCfg = Release|Any CPU
{169F5A43-1079-4E1F-87A2-C5E8E7A69BF9}.ReleaseWhiteList|x86.ActiveCfg = Release|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.Benchmark|Any CPU.ActiveCfg = Debug|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.Benchmark|Mixed Platforms.ActiveCfg = Debug|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.Benchmark|Win32.ActiveCfg = Debug|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.Benchmark|x86.ActiveCfg = Debug|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.Debug|Any CPU.Build.0 = Debug|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
Expand All @@ -157,15 +99,6 @@ Global
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.Release|Win32.ActiveCfg = Release|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.Release|x86.ActiveCfg = Release|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.ReleaseWhiteList|Any CPU.ActiveCfg = Release|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.ReleaseWhiteList|Mixed Platforms.ActiveCfg = Release|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.ReleaseWhiteList|Mixed Platforms.Build.0 = Release|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.ReleaseWhiteList|Win32.ActiveCfg = Release|Any CPU
{36DE9584-F033-4EC0-A18F-1AE60EE55754}.ReleaseWhiteList|x86.ActiveCfg = Release|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.Benchmark|Any CPU.ActiveCfg = Debug|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.Benchmark|Mixed Platforms.ActiveCfg = Debug|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.Benchmark|Win32.ActiveCfg = Debug|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.Benchmark|x86.ActiveCfg = Debug|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
Expand All @@ -178,19 +111,6 @@ Global
{8A1194A0-C773-483B-BD78-9D013105CEA1}.Release|Mixed Platforms.Build.0 = Release|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.Release|Win32.ActiveCfg = Release|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.Release|x86.ActiveCfg = Release|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.ReleaseWhiteList|Any CPU.ActiveCfg = Release|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.ReleaseWhiteList|Mixed Platforms.ActiveCfg = Release|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.ReleaseWhiteList|Mixed Platforms.Build.0 = Release|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.ReleaseWhiteList|Win32.ActiveCfg = Release|Any CPU
{8A1194A0-C773-483B-BD78-9D013105CEA1}.ReleaseWhiteList|x86.ActiveCfg = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Benchmark|Any CPU.ActiveCfg = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Benchmark|Any CPU.Build.0 = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Benchmark|Mixed Platforms.ActiveCfg = Debug|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Benchmark|Mixed Platforms.Build.0 = Debug|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Benchmark|Win32.ActiveCfg = Debug|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Benchmark|Win32.Build.0 = Debug|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Benchmark|x86.ActiveCfg = Debug|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Benchmark|x86.Build.0 = Debug|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Debug|Any CPU.Build.0 = Debug|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
Expand All @@ -207,13 +127,6 @@ Global
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Release|Win32.Build.0 = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Release|x86.ActiveCfg = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.Release|x86.Build.0 = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.ReleaseWhiteList|Any CPU.ActiveCfg = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.ReleaseWhiteList|Mixed Platforms.ActiveCfg = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.ReleaseWhiteList|Mixed Platforms.Build.0 = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.ReleaseWhiteList|Win32.ActiveCfg = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.ReleaseWhiteList|Win32.Build.0 = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.ReleaseWhiteList|x86.ActiveCfg = Release|Any CPU
{3B0676C4-5CF1-4A0B-97E4-0CDF2B035702}.ReleaseWhiteList|x86.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
Expand Down
Loading