Skip to content

Commit e250dde

Browse files
AlexWFMSAlex Williams-Ferreira
andauthored
Add Blender GPU/CPU performance workload profile (#691)
Co-authored-by: Alex Williams-Ferreira <alexwill@microsoft.com>
1 parent c61a186 commit e250dde

3 files changed

Lines changed: 78 additions & 24 deletions

File tree

VERSION

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1 @@
1-
3.0.17
1+
3.0.18

src/VirtualClient/VirtualClient.Main/profiles/PERF-BLENDER-AMD.json renamed to src/VirtualClient/VirtualClient.Main/profiles/PERF-GPU-BLENDER.json

Lines changed: 0 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
"SupportedOperatingSystems": "Windows"
77
},
88
"Parameters": {
9-
"GpuModel": "",
109
"BlenderVersion": "4.2.0",
1110
"Scenes": "monster,junkshop,classroom",
1211
"DeviceTypes": "CPU"
@@ -24,24 +23,6 @@
2423
}
2524
],
2625
"Dependencies": [
27-
{
28-
"Type": "DependencyPackageInstallation",
29-
"Parameters": {
30-
"Scenario": "InstallAMDGPUDriverPackage",
31-
"BlobContainer": "packages",
32-
"BlobName": "amdgpudriver.zip",
33-
"PackageName": "amdgpudriver",
34-
"Extract": true
35-
}
36-
},
37-
{
38-
"Type": "AMDGPUDriverInstallation",
39-
"Parameters": {
40-
"Scenario": "InstallAMDGPUDriver",
41-
"GpuModel": "$.Parameters.GpuModel",
42-
"PackageName": "amdgpudriver"
43-
}
44-
},
4526
{
4627
"Type": "DependencyPackageInstallation",
4728
"Parameters": {

website/docs/workloads/aspnet-benchmarks/aspnet-benchmarks-profiles.md

Lines changed: 77 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,50 @@
22
The following profiles run customer-representative or benchmarking scenarios using ASP.NET server workloads.
33

44
* [Workload Details](./aspnet-benchmarks.md)
5+
* [Client/Server Workloads](../../guides/0020-client-server.md)
6+
7+
## Client/Server Topology Support
8+
ASP.NET benchmark workload profiles support running the workload on both a single system as well as in a client/server topology. This means that the workload supports
9+
operation on a single system or on 2 distinct systems. The client/server topology is typically used when it is desirable to include a network component in the
10+
overall performance evaluation. In a client/server topology, one system operates in the 'Client' role running the HTTP load generator (Wrk or Bombardier) while the other
11+
system operates in the 'Server' role running the ASP.NET Kestrel application.
12+
The Virtual Client instances running on the client and server systems will synchronize with each other before running the workload. In order to support a client/server topology,
13+
an environment layout file MUST be supplied to each instance of the Virtual Client on the command line to describe the IP address/location of other Virtual Client instances. An
14+
environment layout file is not required for the single system topology.
15+
16+
* [Environment Layouts](../../guides/0020-client-server.md)
17+
18+
In the environment layout file provided to the Virtual Client, define the role of the client system/VM as "Client" and the role of the server system(s)/VM(s) as "Server".
19+
The spelling of the roles must be exact. The IP addresses of the systems/VMs must be correct as well. The following example illustrates the
20+
idea. The name of the client must match the name of the system or the value of the agent ID passed in on the command line.
21+
22+
``` bash
23+
# Single System (environment layout not required)
24+
./VirtualClient --profile=PERF-WEB-ASPNET-WRK.json --system=Demo --timeout=1440
25+
26+
# Multi-System
27+
# On Client Role System...
28+
./VirtualClient --profile=PERF-WEB-ASPNET-WRK.json --system=Demo --timeout=1440 --client-id=Client01 --layout=/any/path/to/layout.json
29+
30+
# On Server Role System...
31+
./VirtualClient --profile=PERF-WEB-ASPNET-WRK.json --system=Demo --timeout=1440 --client-id=Server01 --layout=/any/path/to/layout.json
32+
33+
# Example contents of the 'layout.json' file:
34+
{
35+
"clients": [
36+
{
37+
"name": "Client01",
38+
"role": "Client",
39+
"ipAddress": "10.1.0.1"
40+
},
41+
{
42+
"name": "Server01",
43+
"role": "Server",
44+
"ipAddress": "10.1.0.2"
45+
}
46+
]
47+
}
48+
```
549

650
## PERF-WEB-ASPNET-WRK.json
751
Runs the ASP.NET TechEmpower JSON serialization benchmark using Wrk. Includes a warm-up pass before the benchmark measurement.
@@ -21,6 +65,9 @@ Supports .NET 9 and .NET 10 via the `ParametersOn` conditional parameter system.
2165
* **Dependencies**
2266
The dependencies defined in the 'Dependencies' section of the profile itself are required in order to run the workload operations effectively.
2367
* Internet connection.
68+
* The IP addresses defined in the environment layout (see above) for the Client and Server systems must be correct.
69+
* The name of the Client and Server instances defined in the environment layout must match the agent/client IDs supplied on the command line (e.g. --client-id)
70+
or must match the name of the system as defined by the operating system itself.
2471

2572
Additional information on components that exist within the 'Dependencies' section of the profile can be found in the following locations:
2673
* [Installing Dependencies](https://microsoft.github.io/VirtualClient/docs/category/dependencies/)
@@ -40,11 +87,15 @@ Supports .NET 9 and .NET 10 via the `ParametersOn` conditional parameter system.
4087
* **Usage Examples**
4188

4289
```bash
43-
# Run with .NET 9 (default)
90+
# When running on a single system (environment layout not required)
4491
./VirtualClient --profile=PERF-WEB-ASPNET-WRK.json --system=Demo --timeout=1440
4592

4693
# Run with .NET 10
4794
./VirtualClient --profile=PERF-WEB-ASPNET-WRK.json --system=Demo --timeout=1440 --parameters="DotNetVersion=10"
95+
96+
# When running in a client/server environment
97+
./VirtualClient --profile=PERF-WEB-ASPNET-WRK.json --system=Demo --timeout=1440 --client-id=Client01 --layout="/any/path/to/layout.json"
98+
./VirtualClient --profile=PERF-WEB-ASPNET-WRK.json --system=Demo --timeout=1440 --client-id=Server01 --layout="/any/path/to/layout.json"
4899
```
49100

50101
## PERF-WEB-ASPNET-WRK-AFFINITY.json
@@ -65,6 +116,9 @@ Includes a warm-up pass before the benchmark measurement. Supports .NET 9 and .N
65116
* **Dependencies**
66117
The dependencies defined in the 'Dependencies' section of the profile itself are required in order to run the workload operations effectively.
67118
* Internet connection.
119+
* The IP addresses defined in the environment layout (see above) for the Client and Server systems must be correct.
120+
* The name of the Client and Server instances defined in the environment layout must match the agent/client IDs supplied on the command line (e.g. --client-id)
121+
or must match the name of the system as defined by the operating system itself.
68122

69123
Additional information on components that exist within the 'Dependencies' section of the profile can be found in the following locations:
70124
* [Installing Dependencies](https://microsoft.github.io/VirtualClient/docs/category/dependencies/)
@@ -86,11 +140,15 @@ Includes a warm-up pass before the benchmark measurement. Supports .NET 9 and .N
86140
* **Usage Examples**
87141

88142
```bash
89-
# Run with default affinity and .NET 9
143+
# When running on a single system (environment layout not required)
90144
./VirtualClient --profile=PERF-WEB-ASPNET-WRK-AFFINITY.json --system=Demo --timeout=1440
91145

92146
# Run with .NET 10 and custom core affinity
93147
./VirtualClient --profile=PERF-WEB-ASPNET-WRK-AFFINITY.json --system=Demo --timeout=1440 --parameters="DotNetVersion=10,,,ServerCoreAffinity=0-3,,,ClientCoreAffinity=4-7"
148+
149+
# When running in a client/server environment
150+
./VirtualClient --profile=PERF-WEB-ASPNET-WRK-AFFINITY.json --system=Demo --timeout=1440 --client-id=Client01 --layout="/any/path/to/layout.json"
151+
./VirtualClient --profile=PERF-WEB-ASPNET-WRK-AFFINITY.json --system=Demo --timeout=1440 --client-id=Server01 --layout="/any/path/to/layout.json"
94152
```
95153

96154
## PERF-WEB-ASPNET-BOMBARDIER.json
@@ -111,6 +169,9 @@ with 256 concurrent connections. Uses .NET 8 SDK.
111169
* **Dependencies**
112170
The dependencies defined in the 'Dependencies' section of the profile itself are required in order to run the workload operations effectively.
113171
* Internet connection.
172+
* The IP addresses defined in the environment layout (see above) for the Client and Server systems must be correct.
173+
* The name of the Client and Server instances defined in the environment layout must match the agent/client IDs supplied on the command line (e.g. --client-id)
174+
or must match the name of the system as defined by the operating system itself.
114175

115176
Additional information on components that exist within the 'Dependencies' section of the profile can be found in the following locations:
116177
* [Installing Dependencies](https://microsoft.github.io/VirtualClient/docs/category/dependencies/)
@@ -129,9 +190,14 @@ with 256 concurrent connections. Uses .NET 8 SDK.
129190
* **Usage Examples**
130191

131192
```bash
132-
# Execute the workload profile
193+
# When running on a single system (environment layout not required)
133194
./VirtualClient --profile=PERF-WEB-ASPNET-BOMBARDIER.json --system=Demo --timeout=1440
195+
196+
# When running in a client/server environment
197+
./VirtualClient --profile=PERF-WEB-ASPNET-BOMBARDIER.json --system=Demo --timeout=1440 --client-id=Client01 --layout="/any/path/to/layout.json"
198+
./VirtualClient --profile=PERF-WEB-ASPNET-BOMBARDIER.json --system=Demo --timeout=1440 --client-id=Server01 --layout="/any/path/to/layout.json"
134199
```
200+
135201
## PERF-WEB-ASPNET-ORCHARD-WRK.json
136202
Runs the ASP.NET OrchardCore CMS benchmark using Wrk. The server runs the OrchardCore.Cms.Web application
137203
and Wrk benchmarks the `/about` endpoint. Includes a warm-up pass before the benchmark measurement.
@@ -148,6 +214,9 @@ and Wrk benchmarks the `/about` endpoint. Includes a warm-up pass before the ben
148214
* **Dependencies**
149215
The dependencies defined in the 'Dependencies' section of the profile itself are required in order to run the workload operations effectively.
150216
* Internet connection.
217+
* The IP addresses defined in the environment layout (see above) for the Client and Server systems must be correct.
218+
* The name of the Client and Server instances defined in the environment layout must match the agent/client IDs supplied on the command line (e.g. --client-id)
219+
or must match the name of the system as defined by the operating system itself.
151220

152221
Additional information on components that exist within the 'Dependencies' section of the profile can be found in the following locations:
153222
* [Installing Dependencies](https://microsoft.github.io/VirtualClient/docs/category/dependencies/)
@@ -168,6 +237,10 @@ and Wrk benchmarks the `/about` endpoint. Includes a warm-up pass before the ben
168237
* **Usage Examples**
169238

170239
```bash
171-
# Execute the workload profile
240+
# When running on a single system (environment layout not required)
172241
./VirtualClient --profile=PERF-WEB-ASPNET-ORCHARD-WRK.json --system=Demo --timeout=1440
242+
243+
# When running in a client/server environment
244+
./VirtualClient --profile=PERF-WEB-ASPNET-ORCHARD-WRK.json --system=Demo --timeout=1440 --client-id=Client01 --layout="/any/path/to/layout.json"
245+
./VirtualClient --profile=PERF-WEB-ASPNET-ORCHARD-WRK.json --system=Demo --timeout=1440 --client-id=Server01 --layout="/any/path/to/layout.json"
173246
```

0 commit comments

Comments
 (0)