QuantLib

QuantLib is an open-source library/framework around quantitative finance for modeling, trading and risk management scenarios. QuantLib is written in C++ with Boost and its built-in benchmark used reports the QuantLib Benchmark Index benchmark score.

To run this test with the Phoronix Test Suite, the basic command is: phoronix-test-suite benchmark quantlib.

Project Site

quantlib.org

Source Repository

github.com

Test Created

20 January 2021

Last Updated

23 October 2023

Test Maintainer

Michael Larabel 

Test Type

Processor

Average Install Time

5 Minutes

Average Run Time

1 Minute, 38 Seconds

Test Dependencies

C/C++ Compiler Toolchain + C++ Boost + CMake

Accolades

20k+ Downloads

Supported Platforms


Public Result Uploads *Reported Installs **Reported Test Completions **Test Profile Page Views ***OpenBenchmarking.orgEventsQuantLib Popularity Statisticspts/quantlib2021.012021.022021.032021.042021.052021.062021.072021.082021.092021.102021.112021.122022.012022.022022.032022.042022.052022.062022.072022.082022.092022.102022.112022.122023.012023.022023.032023.042023.052023.062023.072023.082023.092023.102023.112023.122024.012024.022024.032024.0415003000450060007500
* Uploading of benchmark result data to OpenBenchmarking.org is always optional (opt-in) via the Phoronix Test Suite for users wishing to share their results publicly.
** Data based on those opting to upload their test results to OpenBenchmarking.org and users enabling the opt-in anonymous statistics reporting while running benchmarks from an Internet-connected platform.
*** Test profile page view reporting began March 2021.
Data updated weekly as of 21 April 2024.
Multi-Threaded55.1%Single-Threaded44.9%Configuration Option PopularityOpenBenchmarking.org

Revision History

pts/quantlib-1.2.0   [View Source]   Mon, 23 Oct 2023 17:10:31 GMT
Update against QuantLib 1.32 upstream, add new multi-threaded benchmark capability.

pts/quantlib-1.1.0   [View Source]   Sat, 29 Apr 2023 08:35:01 GMT
Update against QuantLib 1.30 upstream.

pts/quantlib-1.0.0   [View Source]   Wed, 20 Jan 2021 09:43:09 GMT
Initial commit of QuantLib benchmark

Suites Using This Test

Finance


Performance Metrics

Analyze Test Configuration:

QuantLib 1.21

OpenBenchmarking.org metrics for this test profile configuration based on 1,403 public results since 20 January 2021 with the latest data as of 9 December 2023.

Below is an overview of the generalized performance for components where there is sufficient statistically significant data based upon user-uploaded results. It is important to keep in mind particularly in the Linux/open-source space there can be vastly different OS configurations, with this overview intended to offer just general guidance as to the performance expectations.

Component
Percentile Rank
# Compatible Public Results
MFLOPS (Average)
100th
20
5159 +/- 281
99th
15
4639 +/- 108
98th
16
4518 +/- 126
97th
10
4469 +/- 239
96th
21
4422 +/- 75
94th
9
4372 +/- 196
94th
6
4368 +/- 122
94th
10
4362 +/- 133
93rd
7
4136 +/- 78
93rd
5
4118 +/- 161
92nd
7
4048 +/- 127
92nd
4
4004 +/- 27
87th
4
3543 +/- 16
86th
24
3522 +/- 284
84th
56
3453 +/- 275
81st
9
3340 +/- 203
81st
37
3330 +/- 200
80th
4
3286 +/- 119
79th
41
3227 +/- 255
79th
23
3210 +/- 371
78th
12
3205 +/- 166
76th
21
3156 +/- 298
Mid-Tier
75th
< 3151
71st
15
3104 +/- 163
71st
10
3097 +/- 31
70th
7
3087 +/- 3
70th
9
3082 +/- 8
69th
15
3062 +/- 32
67th
9
3035 +/- 8
67th
8
3034 +/- 115
65th
9
3000 +/- 121
65th
5
2981 +/- 9
64th
3
2970 +/- 238
62nd
4
2905 +/- 201
62nd
4
2894 +/- 12
61st
3
2873 +/- 3
61st
3
2872 +/- 3
60th
24
2819 +/- 210
60th
18
2806 +/- 187
59th
6
2798 +/- 90
58th
7
2751 +/- 53
58th
3
2749 +/- 14
57th
8
2741 +/- 221
57th
7
2723 +/- 202
57th
7
2713 +/- 210
57th
5
2710 +/- 227
56th
3
2696 +/- 7
56th
4
2695 +/- 221
56th
3
2690 +/- 201
54th
3
2674 +/- 238
53rd
12
2657 +/- 226
53rd
3
2654 +/- 19
52nd
4
2641 +/- 212
51st
13
2636 +/- 213
Median
50th
2624
50th
5
2614 +/- 39
49th
4
2604 +/- 225
49th
9
2601 +/- 314
48th
14
2594 +/- 122
48th
9
2593 +/- 316
47th
4
2580 +/- 12
47th
14
2578 +/- 249
47th
3
2576 +/- 13
46th
4
2570 +/- 29
45th
8
2552 +/- 255
43rd
3
2529 +/- 225
43rd
10
2525 +/- 178
43rd
3
2524 +/- 227
43rd
4
2522 +/- 228
43rd
10
2521 +/- 220
43rd
18
2520 +/- 193
42nd
4
2512 +/- 19
42nd
4
2495 +/- 202
42nd
5
2493 +/- 215
41st
5
2485 +/- 71
41st
3
2475 +/- 222
41st
3
2460 +/- 212
41st
6
2459 +/- 164
41st
8
2426 +/- 164
41st
6
2426 +/- 160
40th
11
2417 +/- 153
40th
20
2409 +/- 215
39th
3
2387 +/- 17
39th
3
2382 +/- 17
38th
3
2362 +/- 219
36th
5
2329 +/- 8
35th
3
2323 +/- 15
33rd
5
2304 +/- 173
32nd
6
2293 +/- 26
32nd
14
2292 +/- 9
32nd
6
2291 +/- 5
31st
3
2284 +/- 8
30th
4
2272 +/- 12
30th
3
2269 +/- 145
26th
3
2227 +/- 14
26th
3
2224 +/- 14
Low-Tier
25th
< 2224
25th
3
2218 +/- 10
24th
5
2217 +/- 6
24th
3
2213 +/- 8
24th
5
2211 +/- 56
23rd
3
2204 +/- 5
23rd
3
2204 +/- 13
22nd
6
2182 +/- 3
21st
14
2177 +/- 128
21st
10
2171 +/- 23
21st
4
2171 +/- 8
20th
3
2154 +/- 4
19th
3
2136 +/- 7
19th
3
2134 +/- 14
19th
14
2133 +/- 79
19th
19
2119 +/- 127
18th
3
2109 +/- 16
18th
5
2106 +/- 19
18th
4
2094 +/- 7
17th
3
2059 +/- 17
16th
4
2041 +/- 10
16th
3
2034 +/- 4
15th
4
2018 +/- 4
14th
8
1992 +/- 128
13th
5
1987 +/- 5
13th
5
1984 +/- 15
12th
8
1967 +/- 12
12th
5
1961 +/- 12
12th
5
1955 +/- 5
11th
5
1952 +/- 14
11th
4
1949 +/- 9
11th
5
1927 +/- 11
10th
5
1897 +/- 8
10th
3
1897 +/- 15
10th
5
1896 +/- 8
10th
5
1893 +/- 14
9th
3
1879 +/- 13
8th
4
1838 +/- 131
8th
3
1836 +/- 7
7th
3
1806 +/- 3
7th
3
1784 +/- 2
6th
8
1773 +/- 40
6th
3
1765 +/- 56
5th
3
1707 +/- 13
4th
4
1578 +/- 3
4th
3
1569 +/- 2
4th
3
1561 +/- 7
4th
7
1541 +/- 27
3rd
3
1434 +/- 5
3rd
4
1392 +/- 2
3rd
3
1361 +/- 28
2nd
3
1046 +/- 20
OpenBenchmarking.orgDistribution Of Public Results1403 Results Range From 1028 To 5529 MFLOPS102811191210130113921483157416651756184719382029212022112302239324842575266627572848293930303121321233033394348535763667375838493940403141224213430443954486457746684759485049415032512352145305539654875578306090120150

Based on OpenBenchmarking.org data, the selected test / test configuration (QuantLib 1.21) has an average run-time of 2 minutes. By default this test profile is set to run at least 3 times but may increase if the standard deviation exceeds pre-defined defaults or other calculations deem additional runs necessary for greater statistical accuracy of the result.

OpenBenchmarking.orgMinutesTime Required To Complete BenchmarkRun-Time3691215Min: 1 / Avg: 1.95 / Max: 7

Based on public OpenBenchmarking.org results, the selected test / test configuration has an average standard deviation of 0.7%.

OpenBenchmarking.orgPercent, Fewer Is BetterAverage Deviation Between RunsDeviation246810Min: 0 / Avg: 0.74 / Max: 3

Does It Scale Well With Increasing Cores?

No, based on the automated analysis of the collected public benchmark data, this test / test settings does not generally scale well with increasing CPU core counts. Data based on publicly available results for this test / test settings, separated by vendor, result divided by the reference CPU clock speed, grouped by matching physical CPU core count, and normalized against the smallest core count tested from each vendor for each CPU having a sufficient number of test samples and statistically significant data.

IntelAMDOpenBenchmarking.orgRelative Core Scaling To BaseQuantLib CPU Core Scaling246810121618243248641280.69581.39162.08742.78323.479

Notable Instruction Set Usage

Notable instruction set extensions supported by this test, based on an automatic analysis by the Phoronix Test Suite / OpenBenchmarking.org analytics engine.

Instruction Set
Support
Instructions Detected
Used by default on supported hardware.
Found on Intel processors since Sandy Bridge (2011).
Found on AMD processors since Bulldozer (2011).

 
VZEROUPPER VPERMILPD VINSERTF128 VBROADCASTSD VPERM2F128
Used by default on supported hardware.
Found on Intel processors since Haswell (2013).
Found on AMD processors since Excavator (2016).

 
VINSERTI128 VPBROADCASTQ VPBROADCASTB VEXTRACTI128 VPERMPD VPBROADCASTD VGATHERQPD VPGATHERQQ VPERMQ
FMA (FMA)
Used by default on supported hardware.
Found on Intel processors since Haswell (2013).
Found on AMD processors since Bulldozer (2011).

 
VFMADD231SD VFMADD213SD VFMADD132SD VFMSUB132SD VFNMADD132SD VFNMADD231SD VFMADD132PD VFNMADD132PD VFNMADD213SD VFMADD213PD VFMADD231PD VFMSUB231SD VFNMSUB132SD VFMSUB213SD VFNMSUB231SD VFMSUB231PD VFMSUB132PD VFNMSUB213SD VFNMADD213PD VFNMADD231PD
Last automated analysis: 24 June 2023

This test profile binary relies on the shared libraries libQuantLib.so.1, libm.so.6, libc.so.6.

Tested CPU Architectures

This benchmark has been successfully tested on the below mentioned architectures. The CPU architectures listed is where successful OpenBenchmarking.org result uploads occurred, namely for helping to determine if a given test is compatible with various alternative CPU architectures.

CPU Architecture
Kernel Identifier
Verified On
Intel / AMD x86 64-bit
x86_64
(Many Processors)
ARMv8 64-bit
aarch64
ARMv8 Neoverse-N1, ARMv8 Neoverse-N1 32-Core, ARMv8 Neoverse-V1, Ampere ARMv8 Neoverse-N1 128-Core, Ampere ARMv8 Neoverse-N1 160-Core, Ampere ARMv8 Neoverse-N1 256-Core, Ampere Altra ARMv8 Neoverse-N1 160-Core