SPEC(R) CPU2017 Floating Point Rate Result Dell Inc. PowerEdge R6415 (AMD EPYC 7601, 2.20 GHz) CPU2017 License: 55 Test date: Mar-2018 Test sponsor: Dell Inc. Hardware availability: Feb-2018 Tested by: Dell Inc. Software availability: Dec-2017 Base Base Base Peak Peak Peak Benchmarks Copies Run Time Rate Copies Run Time Rate --------------- ------- --------- --------- ------- --------- --------- 503.bwaves_r 64 2160 297 S 32 1037 309 * 503.bwaves_r 64 2161 297 S 32 1038 309 S 503.bwaves_r 64 2161 297 * 32 1036 310 S 507.cactuBSSN_r 64 578 140 * 64 587 138 S 507.cactuBSSN_r 64 577 140 S 64 586 138 * 507.cactuBSSN_r 64 582 139 S 64 586 138 S 508.namd_r 64 528 115 S 64 482 126 * 508.namd_r 64 528 115 S 64 481 126 S 508.namd_r 64 528 115 * 64 485 125 S 510.parest_r 64 2295 72.9 S 32 923 90.7 S 510.parest_r 64 2292 73.1 S 32 923 90.7 * 510.parest_r 64 2292 73.0 * 32 924 90.6 S 511.povray_r 64 1012 148 S 64 966 155 S 511.povray_r 64 1006 148 S 64 972 154 * 511.povray_r 64 1009 148 * 64 975 153 S 519.lbm_r 64 880 76.7 * 32 435 77.6 S 519.lbm_r 64 879 76.7 S 32 436 77.3 * 519.lbm_r 64 881 76.6 S 32 437 77.2 S 521.wrf_r 64 1012 142 S 32 507 141 S 521.wrf_r 64 1017 141 * 32 508 141 * 521.wrf_r 64 1017 141 S 32 512 140 S 526.blender_r 64 599 163 S 64 602 162 S 526.blender_r 64 600 163 * 64 604 161 * 526.blender_r 64 606 161 S 64 605 161 S 527.cam4_r 64 825 136 S 64 837 134 * 527.cam4_r 64 834 134 * 64 836 134 S 527.cam4_r 64 837 134 S 64 837 134 S 538.imagick_r 64 716 222 S 64 716 222 S 538.imagick_r 64 714 223 S 64 708 225 S 538.imagick_r 64 715 223 * 64 713 223 * 544.nab_r 64 573 188 * 64 573 188 S 544.nab_r 64 573 188 S 64 576 187 S 544.nab_r 64 574 188 S 64 576 187 * 549.fotonik3d_r 64 2634 94.7 S 32 1305 95.5 S 549.fotonik3d_r 64 2628 94.9 S 32 1300 95.9 * 549.fotonik3d_r 64 2631 94.8 * 32 1294 96.4 S 554.roms_r 64 2115 48.1 * 32 830 61.3 S 554.roms_r 64 2114 48.1 S 32 832 61.1 S 554.roms_r 64 2119 48.0 S 32 831 61.2 * ================================================================================= 503.bwaves_r 64 2161 297 * 32 1037 309 * 507.cactuBSSN_r 64 578 140 * 64 586 138 * 508.namd_r 64 528 115 * 64 482 126 * 510.parest_r 64 2292 73.0 * 32 923 90.7 * 511.povray_r 64 1009 148 * 64 972 154 * 519.lbm_r 64 880 76.7 * 32 436 77.3 * 521.wrf_r 64 1017 141 * 32 508 141 * 526.blender_r 64 600 163 * 64 604 161 * 527.cam4_r 64 834 134 * 64 837 134 * 538.imagick_r 64 715 223 * 64 713 223 * 544.nab_r 64 573 188 * 64 576 187 * 549.fotonik3d_r 64 2631 94.8 * 32 1300 95.9 * 554.roms_r 64 2115 48.1 * 32 831 61.2 * SPECrate2017_fp_base 127 SPECrate2017_fp_peak 134 HARDWARE -------- CPU Name: AMD EPYC 7601 Max MHz.: 3200 Nominal: 2200 Enabled: 32 cores, 1 chip, 2 threads/core Orderable: 1 chip Cache L1: 64 KB I + 32 KB D on chip per core L2: 512 KB I+D on chip per core L3: 64 MB I+D on chip per chip, 8 MB shared / 4 cores Other: None Memory: 512 GB (8 x 64 GB 4DRx4 PC4-2666V-L, running at 2666) Storage: 1 x 480 GB SATA SSD Other: None SOFTWARE -------- OS: SUSE Linux Enterprise Server 12 SP3 (x86_64) kernel 4.4.114-94.11-default Compiler: C/C++: Version 1.0.0 of AOCC Fortran: Version 4.8.2 of GCC Parallel: No Firmware: Version 1.0.9 released Jan-2018 File System: xfs System State: Run Level 3 (multi-user) Base Pointers: 64-bit Peak Pointers: 64-bit Other: jemalloc memory allocator library, version 4.5.0 Submit Notes ------------ The config file option 'submit' was used. 'numactl' was used to bind copies to the cores. See the configuration file for details. Operating System Notes ---------------------- 'ulimit -s unlimited' was used to set environment stack size 'ulimit -l 2097152' was used to set environment locked pages in memory limit runspec command invoked through numactl i.e.: numactl --interleave=all runspec Set dirty_ratio=8 to limit dirty cache to 8% of memory Set swappiness=1 to swap only if necessary Set zone_reclaim_mode=1 to free local node memory and avoid remote memory sync then drop_caches=3 to reset caches before invoking runcpu dirty_ratio, swappiness, zone_reclaim_mode and drop_caches were all set using privileged echo (e.g. echo 1 > /proc/sys/vm/swappiness). Transparent huge pages were enabled for this run (OS default) Huge pages were not configured for this run. General Notes ------------- Environment variables set by runcpu before the start of the run: LD_LIBRARY_PATH = "/home/cpu2017-1.0.2/amd1704-rate-libs-revC/64;/home/cpu2017-1.0.2/amd1704-rate-libs-revC/32:" MALLOC_CONF = "lg_chunk:28" The AMD64 AOCC Compiler Suite is available at http://developer.amd.com/amd-aocc/ The AOCC Gold Linker plugin was installed and used for the link stage. The AOCC Fortran Plugin version 1.0 was used to leverage AOCC optimizers with gfortran. Binaries were compiled on a system with 2x AMD EPYC 7601 CPU + 512GB Memory using RHEL 7.4 jemalloc, a general purpose malloc implementation, was obtained at https://github.com/jemalloc/jemalloc/releases/download/4.5.0/jemalloc-4.5.0.tar.bz2 jemalloc was built with GCC v4.8.5 in RHEL v7.2 under default conditions. jemalloc uses environment variable MALLOC_CONF with values narenas and lg_chunk: narenas: sets the maximum number of arenas to use for automatic multiplexing of threads and arenas. lg_chunk: set the virtual memory chunk size (log base 2). For example, lg_chunk:21 sets the default chunk size to 2^21 = 2MiB. NA: The test sponsor attests, as of date of publication, that CVE-2017-5754 (Meltdown) is mitigated in the system as tested and documented. Yes: The test sponsor attests, as of date of publication, that CVE-2017-5753 (Spectre variant 1) is mitigated in the system as tested and documented. Yes: The test sponsor attests, as of date of publication, that CVE-2017-5715 (Spectre variant 2) is mitigated in the system as tested and documented. Platform Notes -------------- Sysinfo program /home/cpu2017-1.0.2/bin/sysinfo Rev: r5797 of 2017-06-14 96c45e4568ad54c135fd618bcc091c0f running on linux-j270 Mon Mar 12 22:52:08 2018 SUT (System Under Test) info as seen by some common utilities. For more information on this section, see https://www.spec.org/cpu2017/Docs/config.html#sysinfo From /proc/cpuinfo model name : AMD EPYC 7601 32-Core Processor 1 "physical id"s (chips) 64 "processors" cores, siblings (Caution: counting these is hw and system dependent. The following excerpts from /proc/cpuinfo might not be reliable. Use with caution.) cpu cores : 32 siblings : 64 physical 0: cores 0 1 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 From lscpu: Architecture: x86_64 CPU op-mode(s): 32-bit, 64-bit Byte Order: Little Endian CPU(s): 64 On-line CPU(s) list: 0-63 Thread(s) per core: 2 Core(s) per socket: 32 Socket(s): 1 NUMA node(s): 4 Vendor ID: AuthenticAMD CPU family: 23 Model: 1 Model name: AMD EPYC 7601 32-Core Processor Stepping: 2 CPU MHz: 2195.820 BogoMIPS: 4391.64 Virtualization: AMD-V L1d cache: 32K L1i cache: 64K L2 cache: 512K L3 cache: 8192K NUMA node0 CPU(s): 0,4,8,12,16,20,24,28,32,36,40,44,48,52,56,60 NUMA node1 CPU(s): 1,5,9,13,17,21,25,29,33,37,41,45,49,53,57,61 NUMA node2 CPU(s): 2,6,10,14,18,22,26,30,34,38,42,46,50,54,58,62 NUMA node3 CPU(s): 3,7,11,15,19,23,27,31,35,39,43,47,51,55,59,63 Flags: fpu vme de pse tsc msr pae mce cx8 apic sep mtrr pge mca cmov pat pse36 clflush mmx fxsr sse sse2 ht syscall nx mmxext fxsr_opt pdpe1gb rdtscp lm constant_tsc rep_good nopl nonstop_tsc extd_apicid amd_dcm aperfmperf eagerfpu pni pclmulqdq monitor ssse3 fma cx16 sse4_1 sse4_2 movbe popcnt aes xsave avx f16c rdrand lahf_lm cmp_legacy svm extapic cr8_legacy abm sse4a misalignsse 3dnowprefetch osvw skinit wdt tce topoext perfctr_core perfctr_nb bpext perfctr_l2 mwaitx arat cpb hw_pstate retpoline retpoline_amd npt lbrv svm_lock nrip_save tsc_scale vmcb_clean flushbyasid decodeassists pausefilter pfthreshold vmmcall avic fsgsbase bmi1 avx2 smep bmi2 rdseed adx smap clflushopt sha_ni xsaveopt xsavec xgetbv1 clzero irperf ibpb overflow_recov succor smca /proc/cpuinfo cache data cache size : 512 KB From numactl --hardware WARNING: a numactl 'node' might or might not correspond to a physical chip. available: 4 nodes (0-3) node 0 cpus: 0 4 8 12 16 20 24 28 32 36 40 44 48 52 56 60 node 0 size: 128622 MB node 0 free: 128428 MB node 1 cpus: 1 5 9 13 17 21 25 29 33 37 41 45 49 53 57 61 node 1 size: 129019 MB node 1 free: 128841 MB node 2 cpus: 2 6 10 14 18 22 26 30 34 38 42 46 50 54 58 62 node 2 size: 129019 MB node 2 free: 128849 MB node 3 cpus: 3 7 11 15 19 23 27 31 35 39 43 47 51 55 59 63 node 3 size: 129017 MB node 3 free: 128846 MB node distances: node 0 1 2 3 0: 10 16 16 16 1: 16 10 16 16 2: 16 16 10 16 3: 16 16 16 10 From /proc/meminfo MemTotal: 528054572 kB HugePages_Total: 0 Hugepagesize: 2048 kB /usr/bin/lsb_release -d SUSE Linux Enterprise Server 12 SP3 From /etc/*release* /etc/*version* SuSE-release: SUSE Linux Enterprise Server 12 (x86_64) VERSION = 12 PATCHLEVEL = 3 # This file is deprecated and will be removed in a future service pack or release. # Please check /etc/os-release for details about this release. os-release: NAME="SLES" VERSION="12-SP3" VERSION_ID="12.3" PRETTY_NAME="SUSE Linux Enterprise Server 12 SP3" ID="sles" ANSI_COLOR="0;32" CPE_NAME="cpe:/o:suse:sles:12:sp3" uname -a: Linux linux-j270 4.4.114-94.11-default #1 SMP Thu Feb 1 19:28:26 UTC 2018 (4309ff9) x86_64 x86_64 x86_64 GNU/Linux run-level 3 Mar 12 09:57 SPEC is set to: /home/cpu2017-1.0.2 Filesystem Type Size Used Avail Use% Mounted on /dev/sda4 xfs 405G 4.9G 400G 2% /home Additional information from dmidecode follows. WARNING: Use caution when you interpret this section. The 'dmidecode' program reads system data which is "intended to allow hardware to be accurately determined", but the intent may not be met, as there are frequent changes to hardware, firmware, and the "DMTF SMBIOS" standard. BIOS Dell Inc. 1.0.9 01/05/2018 Memory: 8x 802C8632802C 72ASS8G72LZ-2G6B2 64 GB 4 rank 2666 8x Not Specified Not Specified (End of data from sysinfo program) Compiler Version Notes ---------------------- ============================================================================== CC 519.lbm_r(base, peak) 538.imagick_r(base, peak) 544.nab_r(base, peak) ------------------------------------------------------------------------------ AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== CXXC 508.namd_r(base, peak) 510.parest_r(base, peak) ------------------------------------------------------------------------------ AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== CC 511.povray_r(base, peak) 526.blender_r(base, peak) ------------------------------------------------------------------------------ AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin ------------------------------------------------------------------------------ ============================================================================== FC 507.cactuBSSN_r(base, peak) ------------------------------------------------------------------------------ AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin GNU Fortran (GCC) 4.8.2 Copyright (C) 2013 Free Software Foundation, Inc. GNU Fortran comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of GNU Fortran under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING ------------------------------------------------------------------------------ ============================================================================== FC 503.bwaves_r(base, peak) 549.fotonik3d_r(base, peak) 554.roms_r(base, peak) ------------------------------------------------------------------------------ GNU Fortran (GCC) 4.8.2 Copyright (C) 2013 Free Software Foundation, Inc. GNU Fortran comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of GNU Fortran under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING ------------------------------------------------------------------------------ ============================================================================== CC 521.wrf_r(base, peak) 527.cam4_r(base, peak) ------------------------------------------------------------------------------ GNU Fortran (GCC) 4.8.2 Copyright (C) 2013 Free Software Foundation, Inc. GNU Fortran comes with NO WARRANTY, to the extent permitted by law. You may redistribute copies of GNU Fortran under the terms of the GNU General Public License. For more information about these matters, see the file named COPYING AOCC.LLVM.4.0.0.B35.2017_04_26 clang version 4.0.0 (CLANG:) (based on LLVM AOCC.LLVM.4.0.0.B35.2017_04_26) Target: x86_64-unknown-linux-gnu Thread model: posix InstalledDir: /root/work/compilers/AOCC-1.0-Compiler/bin ------------------------------------------------------------------------------ Base Compiler Invocation ------------------------ C benchmarks: clang C++ benchmarks: clang++ Fortran benchmarks: clang gfortran Benchmarks using both Fortran and C: clang gfortran Benchmarks using both C and C++: clang++ clang Benchmarks using Fortran, C, and C++: clang++ clang gfortran Base Portability Flags ---------------------- 503.bwaves_r: -DSPEC_LP64 507.cactuBSSN_r: -DSPEC_LP64 508.namd_r: -DSPEC_LP64 510.parest_r: -DSPEC_LP64 511.povray_r: -DSPEC_LP64 519.lbm_r: -DSPEC_LP64 521.wrf_r: -DSPEC_CASE_FLAG -fconvert=big-endian -DSPEC_LP64 526.blender_r: -funsigned-char -D__BOOL_DEFINED -DSPEC_LP64 527.cam4_r: -DSPEC_CASE_FLAG -DSPEC_LP64 538.imagick_r: -DSPEC_LP64 544.nab_r: -DSPEC_LP64 549.fotonik3d_r: -DSPEC_LP64 554.roms_r: -DSPEC_LP64 Base Optimization Flags ----------------------- C benchmarks: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -disable-vect-cmp -O3 -ffast-math -march=znver1 -fstruct-layout=2 -mllvm -unroll-threshold=100 -fremap-arrays -mno-avx2 -inline-threshold=1000 -z muldefs -ljemalloc C++ benchmarks: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -disable-vect-cmp -O3 -march=znver1 -mllvm -unroll-threshold=100 -finline-aggressive -fremap-arrays -inline-threshold=1000 -z muldefs -ljemalloc Fortran benchmarks: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -disable-vect-cmp -O3(gfortran) -O3(clang) -mavx -madx -funroll-loops -ffast-math -z muldefs -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=" -disable-vect-cmp" -ljemalloc -lgfortran -lamdlibm Benchmarks using both Fortran and C: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -disable-vect-cmp -O3(clang) -ffast-math -march=znver1 -fstruct-layout=2 -mllvm -unroll-threshold=100 -fremap-arrays -mno-avx2 -inline-threshold=1000 -O3(gfortran) -mavx -madx -funroll-loops -z muldefs -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=" -disable-vect-cmp" -ljemalloc -lgfortran -lamdlibm Benchmarks using both C and C++: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -disable-vect-cmp -O3 -ffast-math -march=znver1 -fstruct-layout=2 -mllvm -unroll-threshold=100 -fremap-arrays -mno-avx2 -inline-threshold=1000 -finline-aggressive -z muldefs -ljemalloc Benchmarks using Fortran, C, and C++: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -disable-vect-cmp -O3(clang) -ffast-math -march=znver1 -fstruct-layout=2 -mllvm -unroll-threshold=100 -fremap-arrays -mno-avx2 -inline-threshold=1000 -finline-aggressive -O3(gfortran) -mavx -madx -funroll-loops -z muldefs -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=" -disable-vect-cmp" -ljemalloc Peak Compiler Invocation ------------------------ C benchmarks: clang C++ benchmarks: clang++ Fortran benchmarks: clang gfortran Benchmarks using both Fortran and C: clang gfortran Benchmarks using both C and C++: clang++ clang Benchmarks using Fortran, C, and C++: clang++ clang gfortran Peak Portability Flags ---------------------- Same as Base Portability Flags Peak Optimization Flags ----------------------- C benchmarks: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -Ofast -march=znver1 -fstruct-layout=3 -mllvm -vectorize-memory-aggressively -mno-avx2 -unroll-threshold=100 -fremap-arrays -inline-threshold=1000 -ljemalloc C++ benchmarks: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -Ofast -march=znver1 -finline-aggressive -mllvm -unroll-threshold=100 -fremap-arrays -inline-threshold=1000 -ljemalloc Fortran benchmarks: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -O3(gfortran) -O3(clang) -mavx2 -madx -funroll-loops -ffast-math -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=" -inline-threshold:1000" -ljemalloc -lgfortran -lamdlibm Benchmarks using both Fortran and C: 521.wrf_r: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -O3(clang) -mavx -ffast-math -O3(gfortran) -funroll-loops -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=" -inline-threshold:1000" -ljemalloc -lgfortran -lamdlibm 527.cam4_r: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -Ofast -march=znver1 -fstruct-layout=3 -mllvm -vectorize-memory-aggressively -mno-avx2 -unroll-threshold=100 -fremap-arrays -inline-threshold=1000 -O3(gfortran) -O3(clang) -mavx2 -madx -funroll-loops -ffast-math -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=" -inline-threshold:1000" -ljemalloc -lgfortran -lamdlibm Benchmarks using both C and C++: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -Ofast -march=znver1 -fstruct-layout=3 -mllvm -vectorize-memory-aggressively -mno-avx2 -unroll-threshold=100 -fremap-arrays -inline-threshold=1000 -finline-aggressive -ljemalloc Benchmarks using Fortran, C, and C++: -flto -Wl, -plugin-opt= -merge-constant -lsr-in-nested-loop -Ofast -march=znver1 -fstruct-layout=3 -mllvm -vectorize-memory-aggressively -mno-avx2 -unroll-threshold=100 -fremap-arrays -inline-threshold=1000 -finline-aggressive -O3 -mavx2 -madx -funroll-loops -ffast-math -fplugin=dragonegg.so -fplugin-arg-dragonegg-llvm-option=" -inline-threshold:1000" -ljemalloc The flags files that were used to format this result can be browsed at http://www.spec.org/cpu2017/flags/gcc.2018-02-16.html http://www.spec.org/cpu2017/flags/aocc100-flags-revC-I.2018-02-16.html http://www.spec.org/cpu2017/flags/amd1704-Dell-platform-revB-I.html You can also download the XML flags sources by saving the following links: http://www.spec.org/cpu2017/flags/gcc.2018-02-16.xml http://www.spec.org/cpu2017/flags/aocc100-flags-revC-I.2018-02-16.xml http://www.spec.org/cpu2017/flags/amd1704-Dell-platform-revB-I.xml SPEC is a registered trademark of the Standard Performance Evaluation Corporation. All other brand and product names appearing in this result are trademarks or registered trademarks of their respective holders. -------------------------------------------------------------------------------------------------------------------- For questions about this result, please contact the tester. For other inquiries, please contact info@spec.org. Copyright 2017-2019 Standard Performance Evaluation Corporation Tested with SPEC CPU2017 v1.0.2 on 2018-03-12 23:52:08-0400. Report generated on 2019-02-21 13:55:11 by CPU2017 ASCII formatter v6067. Originally published on 2018-04-03.