diff --git a/src/VirtualClient/VirtualClient.Actions.UnitTests/HPLinpack/HPLinpackExecutorTests.cs b/src/VirtualClient/VirtualClient.Actions.UnitTests/HPLinpack/HPLinpackExecutorTests.cs index 09ff8a1327..a391350a8c 100644 --- a/src/VirtualClient/VirtualClient.Actions.UnitTests/HPLinpack/HPLinpackExecutorTests.cs +++ b/src/VirtualClient/VirtualClient.Actions.UnitTests/HPLinpack/HPLinpackExecutorTests.cs @@ -31,8 +31,7 @@ private void SetupTest(PlatformID platform = PlatformID.Unix, Architecture archi this.mockPackage = new DependencyPath("HPL", this.mockFixture.GetPackagePath("hplinpack")); this.mockPerformanceLibariesPackage = new DependencyPath("hplperformancelibraries", this.mockFixture.GetPackagePath("hplperformancelibraries")); - - this.mockFixture.Setup(platform, architecture); + this.mockFixture.Setup(platform, architecture); this.mockFixture.SetupPackage(this.mockPackage); this.mockFixture.SetupPackage(this.mockPerformanceLibariesPackage); @@ -75,16 +74,12 @@ public async Task HPLinpackExecutorInitializesItsDependenciesAsExpected(Platform this.SetupTest(platform, architecture); using (TestHPLExecutor executor = new TestHPLExecutor(this.mockFixture)) { - this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) => - { - return this.mockFixture.Process; - }; + this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) => this.mockFixture.Process; await executor.InitializeAsync(EventContext.None, CancellationToken.None) .ConfigureAwait(false); string workloadExpectedPath = this.mockFixture.PlatformSpecifics.ToPlatformSpecificPath(this.mockPackage, platform, architecture).Path; - Assert.AreEqual(workloadExpectedPath, executor.GetHPLDirectory); } } @@ -120,13 +115,13 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithNoPerformanceLi $"mv Make.UNKNOWN Make.Linux_GCC", $"ln -s {this.mockFixture.PlatformSpecifics.Combine(executor.GetHPLDirectory, "setup", "Make.Linux_GCC" )} Make.Linux_GCC", $"make arch=Linux_GCC", - $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} ./xhpl" + $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} --allow-run-as-root --bind-to core ./xhpl" }; this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) => { expectedCommands.Remove(expectedCommands[0]); - if (arguments == $"runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} ./xhpl") + if (arguments == $"runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} --allow-run-as-root --bind-to core ./xhpl") { this.mockFixture.Process.StandardOutput.Append(this.exampleResults); } @@ -137,7 +132,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithNoPerformanceLi await executor.ExecuteAsync(EventContext.None, CancellationToken.None) .ConfigureAwait(false); - Assert.AreEqual(expectedCommands.Count, 0); + Assert.AreEqual(0, expectedCommands.Count); } } @@ -153,19 +148,19 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibr { List expectedCommands = new List() { - $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockPackage.Path, "ARM", "arm-performance-libraries_23.04.1.sh")}", + $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "ARM", "arm-performance-libraries_23.04.1.sh")}", $"sudo ./arm-performance-libraries_23.04.1.sh -a", $"sudo bash -c \"source make_generic\"", $"mv Make.UNKNOWN Make.Linux_GCC", $"ln -s {this.mockFixture.PlatformSpecifics.Combine(executor.GetHPLDirectory, "setup", "Make.Linux_GCC" )} Make.Linux_GCC", $"make arch=Linux_GCC", - $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} ./xhpl" + $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} --allow-run-as-root --bind-to core ./xhpl" }; this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) => { expectedCommands.Remove(expectedCommands[0]); - if (arguments == $"runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} ./xhpl") + if (arguments == $"runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} --allow-run-as-root --bind-to core ./xhpl") { this.mockFixture.Process.StandardOutput.Append(this.exampleResults); } @@ -176,7 +171,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibr await executor.ExecuteAsync(EventContext.None, CancellationToken.None) .ConfigureAwait(false); - Assert.AreEqual(expectedCommands.Count, 0); + Assert.AreEqual(0, expectedCommands.Count); } } @@ -191,19 +186,19 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibr { List expectedCommands = new List() { - $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockPackage.Path, "ARM", "arm-performance-libraries_24.10.sh")}", + $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "ARM", "arm-performance-libraries_24.10.sh")}", $"sudo ./arm-performance-libraries_24.10.sh -a", $"sudo bash -c \"source make_generic\"", $"mv Make.UNKNOWN Make.Linux_GCC", $"ln -s {this.mockFixture.PlatformSpecifics.Combine(executor.GetHPLDirectory, "setup", "Make.Linux_GCC" )} Make.Linux_GCC", $"make arch=Linux_GCC", - $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} ./xhpl" + $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} --allow-run-as-root --bind-to core ./xhpl" }; this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) => { expectedCommands.Remove(expectedCommands[0]); - if (arguments == $"runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} ./xhpl") + if (arguments == $"runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} --allow-run-as-root --bind-to core ./xhpl") { this.mockFixture.Process.StandardOutput.Append(this.exampleResults); } @@ -214,7 +209,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibr await executor.ExecuteAsync(EventContext.None, CancellationToken.None) .ConfigureAwait(false); - Assert.AreEqual(expectedCommands.Count, 0); + Assert.AreEqual(0, expectedCommands.Count); } } @@ -230,19 +225,19 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibr { List expectedCommands = new List() { - $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockPackage.Path, "ARM", "arm-performance-libraries_25.04.1.sh")}", + $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "ARM", "arm-performance-libraries_25.04.1.sh")}", $"sudo ./arm-performance-libraries_25.04.1.sh -a", $"sudo bash -c \"source make_generic\"", $"mv Make.UNKNOWN Make.Linux_GCC", $"ln -s {this.mockFixture.PlatformSpecifics.Combine(executor.GetHPLDirectory, "setup", "Make.Linux_GCC" )} Make.Linux_GCC", $"make arch=Linux_GCC", - $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} ./xhpl" + $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} --allow-run-as-root --bind-to core ./xhpl" }; this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) => { expectedCommands.Remove(expectedCommands[0]); - if (arguments == $"runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} ./xhpl") + if (arguments == $"runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} --allow-run-as-root --bind-to core ./xhpl") { this.mockFixture.Process.StandardOutput.Append(this.exampleResults); } @@ -253,7 +248,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibr await executor.ExecuteAsync(EventContext.None, CancellationToken.None) .ConfigureAwait(false); - Assert.AreEqual(expectedCommands.Count, 0); + Assert.AreEqual(0, expectedCommands.Count); } } @@ -265,7 +260,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibr { this.SetupTest(platform, architecture); this.mockFixture.Parameters["PerformanceLibrary"] = "AMD"; - this.mockFixture.Parameters["PerformanceLibraryVersion"] = $"{performanceLibraryVersion}"; + this.mockFixture.Parameters["PerformanceLibraryVersion"] = performanceLibraryVersion; using (TestHPLExecutor executor = new TestHPLExecutor(this.mockFixture)) { @@ -277,13 +272,13 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibr $"mv Make.UNKNOWN Make.Linux_GCC", $"ln -s {this.mockFixture.PlatformSpecifics.Combine(executor.GetHPLDirectory, "setup", "Make.Linux_GCC" )} Make.Linux_GCC", $"make arch=Linux_GCC", - $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} ./xhpl" + $"sudo runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} --allow-run-as-root --bind-to core ./xhpl" }; this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) => { expectedCommands.Remove(expectedCommands[0]); - if (arguments == $"runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} ./xhpl") + if (arguments == $"runuser -u {Environment.UserName} -- mpirun --use-hwthread-cpus -np {this.mockFixture.Parameters["NumberOfProcesses"] ?? Environment.ProcessorCount} --allow-run-as-root --bind-to core ./xhpl") { this.mockFixture.Process.StandardOutput.Append(this.exampleResults); } @@ -294,11 +289,10 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibr await executor.ExecuteAsync(EventContext.None, CancellationToken.None) .ConfigureAwait(false); - Assert.AreEqual(expectedCommands.Count, 0); + Assert.AreEqual(0, expectedCommands.Count); } } - [Test] [TestCase(PlatformID.Unix, Architecture.X64, "1.0.0")] public void HPLinpackExecutorThrowsExceptionForUnsupportedAMDPerformanceLibraryVersions(PlatformID platform, Architecture architecture, string performanceLibraryVersion) @@ -313,83 +307,40 @@ public void HPLinpackExecutorThrowsExceptionForUnsupportedAMDPerformanceLibraryV () => executor.ExecuteAsync(EventContext.None, CancellationToken.None)); Assert.AreEqual( - $"The HPL workload currently only supports 4.2.0, 5.0.0 and 5.1.0 versions of AMD performance libraries", + "The HPL workload currently only supports 4.2.0, 5.0.0 and 5.1.0 versions of AMD performance libraries", exception.Message); } } - [Test] - [TestCase(PlatformID.Unix, Architecture.X64, "2025.1.0.803")] - public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibraries25OnUbuntuX64IntelPlatform(PlatformID platform, Architecture architecture, string performanceLibraryVersion) - { - this.SetupTest(platform, architecture); - this.mockFixture.Parameters["PerformanceLibrary"] = "INTEL"; - this.mockFixture.Parameters["PerformanceLibraryVersion"] = $"{performanceLibraryVersion}"; - - // Setup CPU info with socket count for Intel execution path - this.mockFixture.SystemManagement.Setup(mgr => mgr.GetCpuInfoAsync(It.IsAny())) - .ReturnsAsync(new CpuInfo("cpu", "description", 2, 9, 11, 13, true)); - - using (TestHPLExecutor executor = new TestHPLExecutor(this.mockFixture)) - { - List expectedCommands = new List() - { - $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "INTEL", $"{performanceLibraryVersion}", "intel-onemkl-2025.1.0.803_offline.sh")}", - $"sudo ./intel-onemkl-2025.1.0.803_offline.sh -a --silent --eula accept", - $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "INTEL", "2025.1.0.803", "intel-oneapi-hpc-toolkit-2025.1.3.10_offline.sh")}", - $"sudo ./intel-oneapi-hpc-toolkit-2025.1.3.10_offline.sh -a --silent --eula accept", - $"cp -r /opt/intel/oneapi/mkl/2025.1/share/mkl/benchmarks/mp_linpack {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "INTEL", "2025.1.0.803")}", - $"make arch=Linux_GCC", - $"sudo bash -c \". /opt/intel/oneapi/mpi/latest/env/vars.sh && ./runme_intel64_dynamic\"" - }; - - this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) => - { - expectedCommands.Remove(expectedCommands[0]); - if (arguments == $"-c \". /opt/intel/oneapi/mpi/latest/env/vars.sh && ./runme_intel64_dynamic\"") - { - this.mockFixture.Process.StandardOutput.Append(this.exampleResults); - } - - return this.mockFixture.Process; - }; - - await executor.ExecuteAsync(EventContext.None, CancellationToken.None) - .ConfigureAwait(false); - - Assert.AreEqual(expectedCommands.Count, 0); - } - } - [Test] [TestCase(PlatformID.Unix, Architecture.X64, "2024.2.2.17")] - public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibraries24OnUbuntuX64IntelPlatform(PlatformID platform, Architecture architecture, string performanceLibraryVersion) + public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibrariesOnUbuntuX64IntelPlatform(PlatformID platform, Architecture architecture, string performanceLibraryVersion) { this.SetupTest(platform, architecture); this.mockFixture.Parameters["PerformanceLibrary"] = "INTEL"; - this.mockFixture.Parameters["PerformanceLibraryVersion"] = $"{performanceLibraryVersion}"; + this.mockFixture.Parameters["PerformanceLibraryVersion"] = performanceLibraryVersion; - // Setup CPU info with socket count for Intel execution path this.mockFixture.SystemManagement.Setup(mgr => mgr.GetCpuInfoAsync(It.IsAny())) - .ReturnsAsync(new CpuInfo("cpu", "description", 2, 9, 11, 13, true)); + .ReturnsAsync(new CpuInfo("cpu", "description", 2, 4, 1, 1, true)); using (TestHPLExecutor executor = new TestHPLExecutor(this.mockFixture)) { List expectedCommands = new List() { - $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "INTEL", $"{performanceLibraryVersion}", "l_onemkl_p_2024.2.2.17_offline.sh")}", - $"sudo ./l_onemkl_p_2024.2.2.17_offline.sh -a --silent --eula accept", - $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "INTEL", "2024.2.2.17", "l_HPCKit_p_2024.2.1.79_offline.sh")}", + // Order: HPC toolkit then MKL per implementation + $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "INTEL", performanceLibraryVersion, "l_HPCKit_p_2024.2.1.79_offline.sh")}", $"sudo ./l_HPCKit_p_2024.2.1.79_offline.sh -a --silent --eula accept", - $"cp -r /opt/intel/oneapi/mkl/2024.2/share/mkl/benchmarks/mp_linpack {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "INTEL", "2024.2.2.17")}", + $"sudo chmod +x {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "INTEL", performanceLibraryVersion, "l_onemkl_p_2024.2.2.17_offline.sh")}", + $"sudo ./l_onemkl_p_2024.2.2.17_offline.sh -a --silent --eula accept", + $"cp -r /opt/intel/oneapi/mkl/2024.2/share/mkl/benchmarks/mp_linpack {this.mockFixture.PlatformSpecifics.Combine(this.mockFixture.GetPackagePath("hplperformancelibraries"), "INTEL", performanceLibraryVersion)}", $"make arch=Linux_GCC", - $"sudo bash -c \". /opt/intel/oneapi/mpi/latest/env/vars.sh && ./runme_intel64_dynamic\"" + $"sudo bash -c \". /opt/intel/oneapi/mpi/2021.13/env/vars.sh && ./runme_intel64_dynamic\"" }; this.mockFixture.ProcessManager.OnCreateProcess = (command, arguments, workingDirectory) => { expectedCommands.Remove(expectedCommands[0]); - if (arguments == $"-c \". /opt/intel/oneapi/mpi/latest/env/vars.sh && ./runme_intel64_dynamic\"") + if (arguments == "-c \". /opt/intel/oneapi/mpi/2021.13/env/vars.sh && ./runme_intel64_dynamic\"") { this.mockFixture.Process.StandardOutput.Append(this.exampleResults); } @@ -400,7 +351,7 @@ public async Task HPLinpackExecutorExecutesWorkloadAsExpectedWithPerformanceLibr await executor.ExecuteAsync(EventContext.None, CancellationToken.None) .ConfigureAwait(false); - Assert.AreEqual(expectedCommands.Count, 0); + Assert.AreEqual(0, expectedCommands.Count); } } @@ -418,7 +369,7 @@ public void HPLinpackExecutorThrowsExceptionForUnsupportedIntelPerformanceLibrar () => executor.ExecuteAsync(EventContext.None, CancellationToken.None)); Assert.AreEqual( - $"The HPL workload currently only supports 2024.2.2.17 and 2025.1.0.803 versions of INTEL Math Kernel Library", + "The HPL workload currently only supports 2024.2.2.17 version of INTEL Math Kernel Library", exception.Message); } } diff --git a/src/VirtualClient/VirtualClient.Actions/HPLinpack/HPLinpackExecutor.cs b/src/VirtualClient/VirtualClient.Actions/HPLinpack/HPLinpackExecutor.cs index a50623ae7b..0930677e79 100644 --- a/src/VirtualClient/VirtualClient.Actions/HPLinpack/HPLinpackExecutor.cs +++ b/src/VirtualClient/VirtualClient.Actions/HPLinpack/HPLinpackExecutor.cs @@ -207,14 +207,9 @@ protected override async Task InitializeAsync(EventContext telemetryContext, Can string intelMklPath = "/opt/intel/oneapi/mkl/2024.2/share/mkl/benchmarks/mp_linpack"; await this.ExecuteCommandAsync("cp", $"-r {intelMklPath} {this.intelPerfLibrariesPath}", this.HPLDirectory, telemetryContext, cancellationToken); } - else if (this.PerformanceLibraryVersion == "2025.1.0.803") - { - string intelMklPath = "~/intel/oneapi/mkl/2025.1/share/mkl/benchmarks/mp_linpack"; - await this.ExecuteCommandAsync("cp", $"-r {intelMklPath} {this.intelPerfLibrariesPath}", this.HPLDirectory, telemetryContext, cancellationToken); - } else { - throw new WorkloadException($"The HPL workload currently only supports 2024.2.2.17 and 2025.1.0.803 versions of INTEL Math Kernel Library"); + throw new WorkloadException($"The HPL workload currently only supports 2024.2.2.17 version of INTEL Math Kernel Library"); } } else @@ -365,12 +360,8 @@ private async Task ConfigurePerformanceLibrary(EventContext telemetryContext, Ca this.hplIntelMKL = "l_onemkl_p_2024.2.2.17_offline.sh"; this.hplIntelHpcToolkit = "l_HPCKit_p_2024.2.1.79_offline.sh"; break; - case "2025.1.0.803": - this.hplIntelMKL = "intel-onemkl-2025.1.0.803_offline.sh"; - this.hplIntelHpcToolkit = "intel-oneapi-hpc-toolkit-2025.1.3.10_offline.sh"; - break; default: - throw new WorkloadException($"The HPL workload currently only supports 2024.2.2.17 and 2025.1.0.803 versions of INTEL Math Kernel Library"); + throw new WorkloadException($"The HPL workload currently only supports 2024.2.2.17 version of INTEL Math Kernel Library"); } this.intelPerfLibrariesPath = this.PlatformSpecifics.Combine(performanceLibrariesPackage.Path, "INTEL", this.PerformanceLibraryVersion); @@ -467,18 +458,19 @@ private async Task ConfigureDatFileAsync(EventContext telemetryContext, Cancella string hplDatFile; if (this.CpuArchitecture == Architecture.X64 && this.PerformanceLibrary == "INTEL") { - this.SetParameters(this.cpuInfo.SocketCount); + // Hard coding the processes to 1 socket for now as the Intel's Distro for HPL only supports single process runs. + this.SetParameters(1); hplDatFile = this.PlatformSpecifics.Combine(this.intelPerfLibrariesPath, "mp_linpack", "HPL.dat"); string hplRunmeFile = this.PlatformSpecifics.Combine(this.intelPerfLibrariesPath, "mp_linpack", "runme_intel64_dynamic"); await this.fileSystem.File.ReplaceInFileAsync( - hplRunmeFile, @"export MPI_PROC_NUM *= *[^\n]*", $"export MPI_PROC_NUM={this.cpuInfo.SocketCount}", cancellationToken); + hplRunmeFile, @"export MPI_PROC_NUM *= *[^\n]*", $"export MPI_PROC_NUM=1", cancellationToken); await this.fileSystem.File.ReplaceInFileAsync( - hplRunmeFile, @"export MPI_PER_NODE *= *[^\n]*", $"export MPI_PER_NODE={this.cpuInfo.SocketCount}", cancellationToken); + hplRunmeFile, @"export MPI_PER_NODE *= *[^\n]*", $"export MPI_PER_NODE=1", cancellationToken); await this.fileSystem.File.ReplaceInFileAsync( - hplRunmeFile, @"export NUMA_PER_MPI *= *[^\n]*", $"export NUMA_PER_MPI={this.cpuInfo.SocketCount}", cancellationToken); + hplRunmeFile, @"export NUMA_PER_MPI *= *[^\n]*", $"export NUMA_PER_MPI=1", cancellationToken); } else { diff --git a/website/docs/workloads/hplinpack/hplinpack-profiles.md b/website/docs/workloads/hplinpack/hplinpack-profiles.md index 0f8d0a7ce4..8a152b75cf 100644 --- a/website/docs/workloads/hplinpack/hplinpack-profiles.md +++ b/website/docs/workloads/hplinpack/hplinpack-profiles.md @@ -85,10 +85,12 @@ This profile is designed to identify general/broad regressions when compared aga | Platform | PerformanceLibrary | PerformanceLibraryVersion | CompilerName | CompilerVersion | Commandline Usage | |--------------------------|-----------------------------|-----------------------------------------------|-----------------|-------------------|---------------------| - | arm64 | ARM | 23.04.1, 24.10 and 25.04.1 | gcc | 11 | --parameters=PerformanceLibrary=ARM,,,PerformanceLibraryVersion=23.04.10,,,CompilerName=gcc,,,CompilerVersion=11 | - | x64 | AMD | 4.2.0, 5.0.0, 5.1.0 | gcc | 11 | --parameters=PerformanceLibrary=AMD,,,PerformanceLibraryVersion=4.2.0,,,CompilerName=gcc,,,CompilerVersion=11 | - | x64 | INTEL | 2024.2.2.17, 2025.1.0.803 | gcc | 13 | --parameters=PerformanceLibrary=INTEL,,,PerformanceLibraryVersion=2024.2.2.17,,,CompilerVersion=13 | + | arm64 | ARM | 23.04.1, 24.10 and 25.04.1 | gcc | 11 | --parameters=PerformanceLibrary=ARM,,,PerformanceLibraryVersion=23.04.10 | + | x64 | AMD | 4.2.0, 5.0.0, 5.1.0 | gcc | 11 | --parameters=PerformanceLibrary=AMD,,,PerformanceLibraryVersion=4.2.0 | + | x64 | INTEL | 2024.2.2.17 | gcc | 13 | --parameters=PerformanceLibrary=INTEL,,,PerformanceLibraryVersion=2024.2.2.17 | + + **Note**: The INTEL Performance Libraries are only supported on Intel® Xeon® Platinum 8473C (Sapphire Rapids), Intel® Xeon® Platinum 8370C (Ice Lake) processors. * **Resources** * [Performance Libraries for ARM] (https://developer.arm.com/downloads/-/arm-performance-libraries)