diff --git a/README.md b/README.md index c037ac9e..aa76c60b 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,6 @@ # Intel(R) MPI Benchmarks [![Common Public License Version 1.0](https://img.shields.io/badge/license-Common%20Public%20License%20Version%201.0-green.svg)](license/license.txt) -![v2019.1](https://img.shields.io/badge/v.2019.1-Update-orange.svg) +![v2021.1](https://img.shields.io/badge/v.2021.1-Update-orange.svg) -------------------------------------------------- -------- @@ -63,6 +63,12 @@ files and folders appear on your system: ---------- What's New ---------- +New in Intel(R) MPI Benchmarks 2021.1 +---------------------------------------- +- Added -window_size option for IMB-MPI1 +- Added copyrights for *.exe +- Bug fixes. + New in Intel(R) MPI Benchmarks 2019 Update 6 -------------------------------------------- - New IMB-P2P Stencil2D and Stencil3D benchmarks. diff --git a/ReadMe_IMB.txt b/ReadMe_IMB.txt index 9099bef6..31d8a932 100644 --- a/ReadMe_IMB.txt +++ b/ReadMe_IMB.txt @@ -1,5 +1,5 @@ -------------------------------------- -Intel(R) MPI Benchmarks 2019 Update 6 +Intel(R) MPI Benchmarks 2021.1 README -------------------------------------- @@ -62,6 +62,14 @@ files and folders appear on your system: ---------- What's New ---------- + +New in Intel(R) MPI Benchmarks 2021.1 +---------------------------------------- +- Added -window_size option for IMB-MPI1 +- Added copyrights for *.exe +- Bug fixes. + + New in Intel(R) MPI Benchmarks 2019 Update 6 -------------------------------------------- - New IMB-P2P Stencil2D and Stencil3D benchmarks. @@ -69,7 +77,7 @@ New in Intel(R) MPI Benchmarks 2019 Update 6 New in Intel(R) MPI Benchmarks 2019 Update 5 --------------------------------------------- +---------------------------------------- - Added Visual Studio projects for IMB-P2P - Bug fixes. @@ -80,14 +88,14 @@ New in Intel(R) MPI Benchmarks 2019 Update 4 New in Intel(R) MPI Benchmarks 2019 Update 3 --------------------------------------------- +---------------------------------------- - Added the warm_up option that enabled additional cycles before running benchmark(for all size.) - Added a new benchmark Reduce_local for IMB-MPI1. - Bug fixes. New in Intel(R) MPI Benchmarks 2019 Update 2 --------------------------------------------- +---------------------------------------- - New IMB-P2P benchmarks. - Added the Reduce_local benchmark for IMB-MPI1. - Deleted the alignment option (-alignment). @@ -96,7 +104,7 @@ New in Intel(R) MPI Benchmarks 2019 Update 2 New in Intel(R) MPI Benchmarks 2019 Update 1 --------------------------------------------- +---------------------------------------- - Added the Reduce_scatter_block benchmark for IMB-MPI1. - Added the aggregate_mode option that specifies the mode for IMB-IO, IMB-EXT and IMB-RMA. - Added the alignment option that controls buffer alignment. diff --git a/WINDOWS/IMB-EXT_VS_2013/IMB-EXT.rc b/WINDOWS/IMB-EXT_VS_2013/IMB-EXT.rc index bf117aa8..d540c480 100644 --- a/WINDOWS/IMB-EXT_VS_2013/IMB-EXT.rc +++ b/WINDOWS/IMB-EXT_VS_2013/IMB-EXT.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-EXT" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-EXT.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-EXT_VS_2015/IMB-EXT.rc b/WINDOWS/IMB-EXT_VS_2015/IMB-EXT.rc index bf117aa8..d540c480 100644 --- a/WINDOWS/IMB-EXT_VS_2015/IMB-EXT.rc +++ b/WINDOWS/IMB-EXT_VS_2015/IMB-EXT.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-EXT" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-EXT.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-EXT_VS_2017/IMB-EXT.rc b/WINDOWS/IMB-EXT_VS_2017/IMB-EXT.rc index bf117aa8..d540c480 100644 --- a/WINDOWS/IMB-EXT_VS_2017/IMB-EXT.rc +++ b/WINDOWS/IMB-EXT_VS_2017/IMB-EXT.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-EXT" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-EXT.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-IO_VS_2013/IMB-IO.rc b/WINDOWS/IMB-IO_VS_2013/IMB-IO.rc index 69be442d..9bf31652 100644 --- a/WINDOWS/IMB-IO_VS_2013/IMB-IO.rc +++ b/WINDOWS/IMB-IO_VS_2013/IMB-IO.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-IO" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-IO.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-IO_VS_2015/IMB-IO.rc b/WINDOWS/IMB-IO_VS_2015/IMB-IO.rc index 69be442d..9bf31652 100644 --- a/WINDOWS/IMB-IO_VS_2015/IMB-IO.rc +++ b/WINDOWS/IMB-IO_VS_2015/IMB-IO.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-IO" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-IO.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-IO_VS_2017/IMB-IO.rc b/WINDOWS/IMB-IO_VS_2017/IMB-IO.rc index 69be442d..9bf31652 100644 --- a/WINDOWS/IMB-IO_VS_2017/IMB-IO.rc +++ b/WINDOWS/IMB-IO_VS_2017/IMB-IO.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-IO" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-IO.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-MPI1_VS_2013/IMB-MPI1.rc b/WINDOWS/IMB-MPI1_VS_2013/IMB-MPI1.rc index fa4a8263..83549189 100644 --- a/WINDOWS/IMB-MPI1_VS_2013/IMB-MPI1.rc +++ b/WINDOWS/IMB-MPI1_VS_2013/IMB-MPI1.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-MPI1" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-MPI1.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-MPI1_VS_2015/IMB-MPI1.rc b/WINDOWS/IMB-MPI1_VS_2015/IMB-MPI1.rc index fa4a8263..83549189 100644 --- a/WINDOWS/IMB-MPI1_VS_2015/IMB-MPI1.rc +++ b/WINDOWS/IMB-MPI1_VS_2015/IMB-MPI1.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-MPI1" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-MPI1.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-MPI1_VS_2017/IMB-MPI1.rc b/WINDOWS/IMB-MPI1_VS_2017/IMB-MPI1.rc index fa4a8263..83549189 100644 --- a/WINDOWS/IMB-MPI1_VS_2017/IMB-MPI1.rc +++ b/WINDOWS/IMB-MPI1_VS_2017/IMB-MPI1.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-MPI1" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-MPI1.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-MT_VS_2013/IMB-MT.rc b/WINDOWS/IMB-MT_VS_2013/IMB-MT.rc index 382b69ba..72851278 100644 --- a/WINDOWS/IMB-MT_VS_2013/IMB-MT.rc +++ b/WINDOWS/IMB-MT_VS_2013/IMB-MT.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-MT" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-MT.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-MT_VS_2015/IMB-MT.rc b/WINDOWS/IMB-MT_VS_2015/IMB-MT.rc index 382b69ba..72851278 100644 --- a/WINDOWS/IMB-MT_VS_2015/IMB-MT.rc +++ b/WINDOWS/IMB-MT_VS_2015/IMB-MT.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-MT" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-MT.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-MT_VS_2017/IMB-MT.rc b/WINDOWS/IMB-MT_VS_2017/IMB-MT.rc index 382b69ba..72851278 100644 --- a/WINDOWS/IMB-MT_VS_2017/IMB-MT.rc +++ b/WINDOWS/IMB-MT_VS_2017/IMB-MT.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-MT" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-MT.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-NBC_VS_2013/IMB-NBC.rc b/WINDOWS/IMB-NBC_VS_2013/IMB-NBC.rc index 90991835..a07f1e8a 100644 --- a/WINDOWS/IMB-NBC_VS_2013/IMB-NBC.rc +++ b/WINDOWS/IMB-NBC_VS_2013/IMB-NBC.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-NBC" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-NBC.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-NBC_VS_2015/IMB-NBC.rc b/WINDOWS/IMB-NBC_VS_2015/IMB-NBC.rc index 90991835..a07f1e8a 100644 --- a/WINDOWS/IMB-NBC_VS_2015/IMB-NBC.rc +++ b/WINDOWS/IMB-NBC_VS_2015/IMB-NBC.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-NBC" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-NBC.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-NBC_VS_2017/IMB-NBC.rc b/WINDOWS/IMB-NBC_VS_2017/IMB-NBC.rc index 90991835..a07f1e8a 100644 --- a/WINDOWS/IMB-NBC_VS_2017/IMB-NBC.rc +++ b/WINDOWS/IMB-NBC_VS_2017/IMB-NBC.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-NBC" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-NBC.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-P2P_VS_2013/IMB-P2P.rc b/WINDOWS/IMB-P2P_VS_2013/IMB-P2P.rc old mode 100755 new mode 100644 index a5a32d88..8f42e270 --- a/WINDOWS/IMB-P2P_VS_2013/IMB-P2P.rc +++ b/WINDOWS/IMB-P2P_VS_2013/IMB-P2P.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-P2P" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-P2P.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-P2P_VS_2013/IMB-P2P.sln b/WINDOWS/IMB-P2P_VS_2013/IMB-P2P.sln old mode 100755 new mode 100644 diff --git a/WINDOWS/IMB-P2P_VS_2013/IMB-P2P.vcxproj b/WINDOWS/IMB-P2P_VS_2013/IMB-P2P.vcxproj old mode 100755 new mode 100644 diff --git a/WINDOWS/IMB-P2P_VS_2013/resource.h b/WINDOWS/IMB-P2P_VS_2013/resource.h old mode 100755 new mode 100644 diff --git a/WINDOWS/IMB-P2P_VS_2015/IMB-P2P.rc b/WINDOWS/IMB-P2P_VS_2015/IMB-P2P.rc old mode 100755 new mode 100644 index a5a32d88..8f42e270 --- a/WINDOWS/IMB-P2P_VS_2015/IMB-P2P.rc +++ b/WINDOWS/IMB-P2P_VS_2015/IMB-P2P.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-P2P" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-P2P.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-P2P_VS_2015/IMB-P2P.sln b/WINDOWS/IMB-P2P_VS_2015/IMB-P2P.sln old mode 100755 new mode 100644 diff --git a/WINDOWS/IMB-P2P_VS_2015/IMB-P2P.vcxproj b/WINDOWS/IMB-P2P_VS_2015/IMB-P2P.vcxproj old mode 100755 new mode 100644 diff --git a/WINDOWS/IMB-P2P_VS_2015/resource.h b/WINDOWS/IMB-P2P_VS_2015/resource.h old mode 100755 new mode 100644 diff --git a/WINDOWS/IMB-P2P_VS_2017/IMB-P2P.rc b/WINDOWS/IMB-P2P_VS_2017/IMB-P2P.rc old mode 100755 new mode 100644 index 6ccd966f..5032440b --- a/WINDOWS/IMB-P2P_VS_2017/IMB-P2P.rc +++ b/WINDOWS/IMB-P2P_VS_2017/IMB-P2P.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-P2P" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-P2P.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-P2P_VS_2017/IMB-P2P.sln b/WINDOWS/IMB-P2P_VS_2017/IMB-P2P.sln old mode 100755 new mode 100644 diff --git a/WINDOWS/IMB-P2P_VS_2017/IMB-P2P.vcxproj b/WINDOWS/IMB-P2P_VS_2017/IMB-P2P.vcxproj old mode 100755 new mode 100644 diff --git a/WINDOWS/IMB-P2P_VS_2017/resource.h b/WINDOWS/IMB-P2P_VS_2017/resource.h old mode 100755 new mode 100644 diff --git a/WINDOWS/IMB-RMA_VS_2013/IMB-RMA.rc b/WINDOWS/IMB-RMA_VS_2013/IMB-RMA.rc index ded2d9c3..0ba49d7e 100644 --- a/WINDOWS/IMB-RMA_VS_2013/IMB-RMA.rc +++ b/WINDOWS/IMB-RMA_VS_2013/IMB-RMA.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-RMA" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-RMA.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-RMA_VS_2015/IMB-RMA.rc b/WINDOWS/IMB-RMA_VS_2015/IMB-RMA.rc index ded2d9c3..0ba49d7e 100644 --- a/WINDOWS/IMB-RMA_VS_2015/IMB-RMA.rc +++ b/WINDOWS/IMB-RMA_VS_2015/IMB-RMA.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-RMA" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-RMA.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/IMB-RMA_VS_2017/IMB-RMA.rc b/WINDOWS/IMB-RMA_VS_2017/IMB-RMA.rc index ded2d9c3..0ba49d7e 100644 --- a/WINDOWS/IMB-RMA_VS_2017/IMB-RMA.rc +++ b/WINDOWS/IMB-RMA_VS_2017/IMB-RMA.rc @@ -53,8 +53,8 @@ END // VS_VERSION_INFO VERSIONINFO - FILEVERSION 2019,0,6,0 - PRODUCTVERSION 2019,0,6,0 + FILEVERSION 2021,1,0,0 + PRODUCTVERSION 2021,1,0,0 FILEFLAGSMASK 0x17L #ifdef _DEBUG FILEFLAGS 0x1L @@ -71,12 +71,12 @@ BEGIN BEGIN VALUE "CompanyName", "Intel Corporation" VALUE "FileDescription", "Intel(R) MPI Benchmarks" - VALUE "FileVersion", "2019.0.6" + VALUE "FileVersion", "2021.1" VALUE "InternalName", "IMB-RMA" VALUE "LegalCopyright", "Copyright 2003-2020 Intel Corporation." VALUE "OriginalFilename", "IMB-RMA.exe" VALUE "ProductName", "Intel(R) MPI Benchmarks" - VALUE "ProductVersion", "2019.0.6" + VALUE "ProductVersion", "2021.1" END END BLOCK "VarFileInfo" diff --git a/WINDOWS/mkvsprojs.sh b/WINDOWS/mkvsprojs.sh old mode 100755 new mode 100644 diff --git a/license/license.txt b/license/license.txt index bfeaaa87..986694bc 100644 --- a/license/license.txt +++ b/license/license.txt @@ -1,4 +1,13 @@ -Common Public License Version 1.0 + Intel(R) MPI Benchmarks is provided under the terms of the Common Public + License Version 1.0. Third party programs or components provided with + Intel(R) MPI Benchmarks are governed by separate license terms. + Such separate license terms (and not the Common Public License) solely + govern your use of these third party programs. Information on those + components and licenses can be found in the "third-party-programs.txt" text + file that is included with Intel(R) MPI Benchmarks. + + + Common Public License Version 1.0. THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF @@ -229,5 +238,3 @@ the intellectual property laws of the United States of America. No party to this Agreement will bring a legal action under this Agreement more than one year after the cause of action arose. Each party waives its rights to a jury trial in any resulting litigation. - - diff --git a/license/third-party-programs.txt b/license/third-party-programs.txt new file mode 100644 index 00000000..38a90b26 --- /dev/null +++ b/license/third-party-programs.txt @@ -0,0 +1,50 @@ +Intel(R) MPI Benchmarks Third Party Programs File + +This file is the "third-party-programs.txt" file specified in the associated +Intel end user license agreement for the Intel software you are licensing. +Third party programs and their corresponding required notices and/or license +terms are listed below. + +------------------------------------------------------------------------------- + +1. Brown CRC32 + + COPYRIGHT (C) 1986 Gary S. Brown. + + CRC32 Java License + + You may use this program, or code or tables extracted from it, as desired + without restriction. + + + Brown CRC32: Tables for software CRC generation + + Copyright (c) 2004-2006 Intel Corporation - All Rights Reserved + + BSD-2-Clause License + + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: + + 1. Redistributions of source code must retain the above copyright notice, this + list of conditions and the following disclaimer. + + 2. Redistributions in binary form must reproduce the above copyright notice, + this list of conditions and the following disclaimer in the documentation + and/or other materials provided with the distribution. + + THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. + +------------------------------------------------------------------------------- + +Other names and brands may be claimed as the property of others. diff --git a/src_c/IMB_bandwidth.c b/src_c/IMB_bandwidth.c index 559050f8..b8ee61de 100644 --- a/src_c/IMB_bandwidth.c +++ b/src_c/IMB_bandwidth.c @@ -111,7 +111,7 @@ Output variables: int s_tag, r_tag; int dest, source; MPI_Status stat; - MPI_Request requests[MAX_WIN_SIZE]; + MPI_Request *requests = (MPI_Request*)malloc(c_info->max_win_size * sizeof(MPI_Request)); int ws, peers; char ack; @@ -142,7 +142,7 @@ Output variables: if (c_info->rank < peers) { dest = (c_info->rank + peers); for(i = 0; i < ITERATIONS->n_sample; i++) { - for (ws = 0; ws < MAX_WIN_SIZE; ws++) + for (ws = 0; ws < c_info->max_win_size; ws++) MPI_ERRHAND(MPI_Isend((char*)c_info->s_buffer + ws % ITERATIONS->s_cache_iter * ITERATIONS->s_offs, s_num, c_info->s_data_type, @@ -151,14 +151,14 @@ Output variables: c_info->communicator, &requests[ws])); - MPI_Waitall(MAX_WIN_SIZE, &requests[0], MPI_STATUSES_IGNORE); + MPI_Waitall(c_info->max_win_size, &requests[0], MPI_STATUSES_IGNORE); MPI_Recv(&ack, 1, MPI_CHAR, dest, r_tag, c_info->communicator, &stat); } } else { source = (c_info->rank - peers); for (i = 0; i < ITERATIONS->n_sample; i++) { - for (ws = 0; ws < MAX_WIN_SIZE; ws++) + for (ws = 0; ws < c_info->max_win_size; ws++) MPI_ERRHAND(MPI_Irecv((char*)c_info->r_buffer + ws % ITERATIONS->r_cache_iter * ITERATIONS->r_offs, r_num, c_info->r_data_type, @@ -167,12 +167,14 @@ Output variables: c_info->communicator, &requests[ws])); - MPI_Waitall(MAX_WIN_SIZE, &requests[0], MPI_STATUSES_IGNORE); + MPI_Waitall(c_info->max_win_size, &requests[0], MPI_STATUSES_IGNORE); MPI_Send(&ack, 1, MPI_CHAR, source, s_tag, c_info->communicator); } } t2 = MPI_Wtime(); *time = (t2 - t1) / ITERATIONS->n_sample; + + free(requests); } void IMB_bi_bandwidth(struct comm_info* c_info, int size, struct iter_schedule* ITERATIONS, @@ -218,8 +220,8 @@ Output variables: int s_tag, r_tag; int dest, source; MPI_Status stat; - const int max_win_size2 = 2 * MAX_WIN_SIZE; - MPI_Request requests[2 * MAX_WIN_SIZE]; + const int max_win_size2 = 2 * c_info->max_win_size; + MPI_Request *requests = (MPI_Request*)malloc(2 * c_info->max_win_size * sizeof(MPI_Request)); int ws, peers; char ack; @@ -250,7 +252,7 @@ Output variables: if (c_info->rank < peers) { dest = (c_info->rank + peers); for(i = 0; i < ITERATIONS->n_sample; i++) { - for (ws = 0; ws < MAX_WIN_SIZE; ws++) + for (ws = 0; ws < c_info->max_win_size; ws++) MPI_ERRHAND(MPI_Irecv((char*)c_info->r_buffer + ws % ITERATIONS->r_cache_iter * ITERATIONS->r_offs, r_num, c_info->r_data_type, @@ -259,14 +261,14 @@ Output variables: c_info->communicator, &requests[ws])); - for (ws = 0; ws < MAX_WIN_SIZE; ws++) + for (ws = 0; ws < c_info->max_win_size; ws++) MPI_ERRHAND(MPI_Isend((char*)c_info->s_buffer + ws % ITERATIONS->s_cache_iter * ITERATIONS->s_offs, s_num, c_info->s_data_type, dest, s_tag, c_info->communicator, - &requests[ws + MAX_WIN_SIZE])); + &requests[ws + c_info->max_win_size])); MPI_Waitall(max_win_size2, &requests[0], MPI_STATUSES_IGNORE); MPI_Recv(&ack, 1, MPI_CHAR, dest, r_tag, c_info->communicator, &stat); @@ -275,7 +277,7 @@ Output variables: else { source = (c_info->rank - peers); for (i = 0; i < ITERATIONS->n_sample; i++) { - for (ws = 0; ws < MAX_WIN_SIZE; ws++) + for (ws = 0; ws < c_info->max_win_size; ws++) MPI_ERRHAND(MPI_Irecv((char*)c_info->r_buffer + ws % ITERATIONS->r_cache_iter * ITERATIONS->r_offs, r_num, c_info->r_data_type, @@ -283,14 +285,14 @@ Output variables: r_tag, c_info->communicator, &requests[ws])); - for (ws = 0; ws < MAX_WIN_SIZE; ws++) + for (ws = 0; ws < c_info->max_win_size; ws++) MPI_ERRHAND(MPI_Isend((char*)c_info->s_buffer + ws % ITERATIONS->s_cache_iter * ITERATIONS->s_offs, s_num, c_info->s_data_type, source, s_tag, c_info->communicator, - &requests[ws + MAX_WIN_SIZE])); + &requests[ws + c_info->max_win_size])); MPI_Waitall(max_win_size2, &requests[0], MPI_STATUSES_IGNORE); MPI_Send(&ack, 1, MPI_CHAR, source, s_tag, c_info->communicator); @@ -299,4 +301,5 @@ Output variables: t2 = MPI_Wtime(); *time = (t2 - t1) / ITERATIONS->n_sample; + free(requests); } diff --git a/src_c/IMB_comm_info.h b/src_c/IMB_comm_info.h index b7f1c164..b709ef9d 100644 --- a/src_c/IMB_comm_info.h +++ b/src_c/IMB_comm_info.h @@ -151,6 +151,8 @@ struct comm_info { int warm_up; + int max_win_size; + #ifdef MPIIO /* FILE INFORMATION */ char* filename; diff --git a/src_c/IMB_g_info.c b/src_c/IMB_g_info.c index ac16ca2d..a9b1ff5d 100644 --- a/src_c/IMB_g_info.c +++ b/src_c/IMB_g_info.c @@ -72,7 +72,7 @@ For more documentation than found here, see #ifdef IMB2018 char* VERSION="2018"; #else -char* VERSION="2019 Update 6"; +char* VERSION="2021.1"; #endif #include diff --git a/src_c/IMB_output.c b/src_c/IMB_output.c index 35ec33d1..677c0021 100644 --- a/src_c/IMB_output.c +++ b/src_c/IMB_output.c @@ -334,7 +334,7 @@ Input variables: #ifndef MPIIO else { int peers = c_info->num_procs / 2; - msgrate = (Bmark->scale_bw * SCALE * MAX_WIN_SIZE * peers) / timing[MAX].times[PURE]; + msgrate = (Bmark->scale_bw * SCALE * c_info->max_win_size * peers) / timing[MAX].times[PURE]; throughput = MEGA * msgrate * size; } #endif diff --git a/src_c/IMB_settings.h b/src_c/IMB_settings.h index 2502ad6e..a06b395b 100644 --- a/src_c/IMB_settings.h +++ b/src_c/IMB_settings.h @@ -168,7 +168,4 @@ typedef float assign_type; #endif -/* maximum window size of messages*/ -#define MAX_WIN_SIZE 64 - #endif diff --git a/src_c/P2P/Makefile b/src_c/P2P/Makefile index 4f810af0..0c47a14d 100644 --- a/src_c/P2P/Makefile +++ b/src_c/P2P/Makefile @@ -67,6 +67,7 @@ IMB_SRC += imb_p2p_birandom.c IMB_SRC += imb_p2p_corandom.c IMB_SRC += imb_p2p_stencil2d.c IMB_SRC += imb_p2p_stencil3d.c +IMB_SRC += imb_p2p_sendrecv_replace.c IMB_OBJ = $(IMB_SRC:.c=.o) diff --git a/src_c/P2P/imb_p2p.c b/src_c/P2P/imb_p2p.c index cfd9c414..3680a09a 100644 --- a/src_c/P2P/imb_p2p.c +++ b/src_c/P2P/imb_p2p.c @@ -56,7 +56,7 @@ goods and services. #define INFO_BUFFER_SIZE 32767 #endif -static const char * VERSION = "2019 Update 6"; +static const char * VERSION = "2021.1"; FILE* unit = NULL; imb_p2p_configuration_t imb_p2p_config = { 0 }; @@ -383,6 +383,8 @@ static void initialization(int argc, char **argv) { add_benchmark(IMB_P2P_STENCIL2D, imb_p2p_stencil2d); } else if (!STRCASECMP(argv[i], IMB_P2P_STENCIL3D)) { add_benchmark(IMB_P2P_STENCIL3D, imb_p2p_stencil3d); + } else if (!STRCASECMP(argv[i], IMB_P2P_SENDRECV_REPLACE)) { + add_benchmark(IMB_P2P_SENDRECV_REPLACE, imb_p2p_sendrecv_replace); } else if (!STRCASECMP(argv[i], "-msgwr")) { i++; if (i >= argc) { @@ -632,6 +634,7 @@ static void initialization(int argc, char **argv) { add_benchmark(IMB_P2P_CORANDOM, imb_p2p_corandom); add_benchmark(IMB_P2P_STENCIL2D, imb_p2p_stencil2d); add_benchmark(IMB_P2P_STENCIL3D, imb_p2p_stencil3d); + add_benchmark(IMB_P2P_SENDRECV_REPLACE, imb_p2p_sendrecv_replace); } if (imb_p2p_config.rank == 0) { print_main_header(argc, argv); @@ -763,6 +766,7 @@ static void loading(int argc, char **argv) { fprintf(unit, "# %s\n", IMB_P2P_CORANDOM); fprintf(unit, "# %s\n", IMB_P2P_STENCIL2D); fprintf(unit, "# %s\n", IMB_P2P_STENCIL3D); + fprintf(unit, "# %s\n", IMB_P2P_SENDRECV_REPLACE); fprintf(unit, "#\n"); fflush(unit); exit(0); diff --git a/src_c/P2P/imb_p2p.h b/src_c/P2P/imb_p2p.h index e038dd7d..f5eb18fe 100644 --- a/src_c/P2P/imb_p2p.h +++ b/src_c/P2P/imb_p2p.h @@ -79,6 +79,7 @@ goods and services. #define IMB_P2P_CORANDOM "Corandom" #define IMB_P2P_STENCIL2D "Stencil2D" #define IMB_P2P_STENCIL3D "Stencil3D" +#define IMB_P2P_SENDRECV_REPLACE "SendRecv_Replace" extern FILE* unit; void imb_p2p_barrier(MPI_Comm comm); @@ -90,6 +91,7 @@ void imb_p2p_birandom(); void imb_p2p_corandom(); void imb_p2p_stencil2d(); void imb_p2p_stencil3d(); +void imb_p2p_sendrecv_replace(); void imb_p2p_print_benchmark_header(const char * name); void imb_p2p_free_mem(void *ptr); void* imb_p2p_alloc_mem(size_t size); diff --git a/src_c/P2P/imb_p2p_sendrecv_replace.c b/src_c/P2P/imb_p2p_sendrecv_replace.c new file mode 100644 index 00000000..c44918f9 --- /dev/null +++ b/src_c/P2P/imb_p2p_sendrecv_replace.c @@ -0,0 +1,122 @@ +/* +***************************************************************************** +* * +* Copyright 2016-2020 Intel Corporation. * +* * +***************************************************************************** + +This code is covered by the Community Source License (CPL), version +1.0 as published by IBM and reproduced in the file "license.txt" in the +"license" subdirectory. Redistribution in source and binary form, with +or without modification, is permitted ONLY within the regulations +contained in above mentioned license. + +Use of the name and trademark "Intel(R) MPI Benchmarks" is allowed ONLY +within the regulations of the "License for Use of "Intel(R) MPI +Benchmarks" Name and Trademark" as reproduced in the file +"use-of-trademark-license.txt" in the "license" subdirectory. + +THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR +CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT +LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is +solely responsible for determining the appropriateness of using and +distributing the Program and assumes all risks associated with its +exercise of rights under this Agreement, including but not limited to +the risks and costs of program errors, compliance with applicable +laws, damage to or loss of data, programs or equipment, and +unavailability or interruption of operations. + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR +ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING +WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR +DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED +HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +EXPORT LAWS: THIS LICENSE ADDS NO RESTRICTIONS TO THE EXPORT LAWS OF +YOUR JURISDICTION. It is licensee's responsibility to comply with any +export regulations applicable in licensee's jurisdiction. Under +CURRENT U.S. export regulations this software is eligible for export +from the U.S. and can be downloaded by or otherwise exported or +reexported worldwide EXCEPT to U.S. embargoed destinations which +include Cuba, Iraq, Libya, North Korea, Iran, Syria, Sudan, +Afghanistan and any other country to which the U.S. has embargoed +goods and services. +*/ + +#include "imb_p2p.h" + +void imb_p2p_sendrecv_replace() { + char *buffer; + size_t msg_size_index; + int nranks = imb_p2p_config.nranks; + if (nranks < 2) { + if (imb_p2p_config.rank == 0) { + fprintf(unit, "\n"); + fprintf(unit, "# !! Benchmark %s is invalid for %d process !!\n", IMB_P2P_SENDRECV_REPLACE, nranks); + fflush(unit); + } + return; + } + if (imb_p2p_config.rank == 0) { + imb_p2p_print_benchmark_header(IMB_P2P_SENDRECV_REPLACE); + fprintf(unit, " %12s %12s %12s %12s %12s\n", "#bytes", "#repetitions", "t[usec]", "Mbytes/sec", "Msg/sec"); + fflush(unit); + } + buffer = (char *)imb_p2p_alloc_mem(imb_p2p_config.messages.max_size); + memset(buffer, imb_p2p_config.rank, imb_p2p_config.messages.max_size); + for (msg_size_index = 0; msg_size_index < imb_p2p_config.messages.length; msg_size_index++) { + size_t size = imb_p2p_config.messages.array[msg_size_index]; + size_t iteration, number_of_iterations, number_of_warm_up_iterations; + double time; + int dst = (imb_p2p_config.rank + 1) % nranks; + int src = (imb_p2p_config.rank + nranks - 1) % nranks; + get_iters(size, &number_of_iterations, &number_of_warm_up_iterations); + imb_p2p_pause(); + imb_p2p_barrier(MPI_COMM_WORLD); + for (iteration = 0; iteration < number_of_warm_up_iterations; iteration++) { + touch_send_buff(size, buffer); + MPI_Sendrecv_replace(buffer, size, MPI_BYTE, + dst, 0, src, 0, + MPI_COMM_WORLD, MPI_STATUS_IGNORE); + } + touch_recv_buff(size, buffer); + time = MPI_Wtime(); + for (iteration = 0; iteration < number_of_iterations; iteration++) { + touch_send_buff(size, buffer); + MPI_Sendrecv_replace(buffer, size, MPI_BYTE, + dst, 0, src, 0, + MPI_COMM_WORLD, MPI_STATUS_IGNORE); + } + touch_recv_buff(size, buffer); + time = MPI_Wtime() - time; + imb_p2p_pause(); + imb_p2p_barrier(MPI_COMM_WORLD); + if (imb_p2p_config.rank) { + MPI_Send(&time, 1, MPI_DOUBLE, 0, 1, MPI_COMM_WORLD); + } else { + const double microseconds = 1000000.0; + double bandwidth, message_rate, latency; + double max_time = time; + double aggregate_time = time; + int source_rank; + for (source_rank = 1; source_rank < nranks; source_rank++) { + double t = 0; + MPI_Recv(&t, 1, MPI_DOUBLE, source_rank, 1, MPI_COMM_WORLD, MPI_STATUS_IGNORE); + aggregate_time += t; + if (max_time < t) { + max_time = t; + } + } + bandwidth = ((number_of_iterations * nranks * size) / (microseconds * max_time)); + message_rate = ((number_of_iterations * nranks) / max_time); + latency = (microseconds * aggregate_time) / (number_of_iterations * nranks); + fprintf(unit, " %12" PRIu64 " %12" PRIu64 " %12.2f %12.2f %12.0f\n", size, number_of_iterations, latency, bandwidth, message_rate); + fflush(unit); + } + } + imb_p2p_free_mem(buffer); +} diff --git a/src_c/P2P/imb_p2p_stencil3d.c b/src_c/P2P/imb_p2p_stencil3d.c index 41cacaaa..b1900b49 100644 --- a/src_c/P2P/imb_p2p_stencil3d.c +++ b/src_c/P2P/imb_p2p_stencil3d.c @@ -76,13 +76,14 @@ void imb_p2p_stencil3d() { length_z++; } while ((length_x * length_y * length_z) > nranks) { + int n, lx, ly; length_z--; while ((length_z > 1) && (nranks % length_z)) { length_z--; } - int n = nranks / length_z; - int lx = 2; - int ly = 2; + n = nranks / length_z; + lx = 2; + ly = 2; while ((lx * ly) < n) { lx++; ly++; diff --git a/src_cpp/EXT/EXT_benchmark.cpp b/src_cpp/EXT/EXT_benchmark.cpp index bb6ddcad..778643be 100644 --- a/src_cpp/EXT/EXT_benchmark.cpp +++ b/src_cpp/EXT/EXT_benchmark.cpp @@ -70,9 +70,10 @@ extern "C" { using namespace std; -#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark, BMRK_FN>; \ -DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark, BMRK_FN>), BMRK_NAME) \ +#define BENCHMARK(BMRK_FN, BMRK_NAME) \ template<> smart_ptr OriginalBenchmark, BMRK_FN>::descr = NULL; \ +DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark, BMRK_FN>), BMRK_NAME) \ +template class OriginalBenchmark, BMRK_FN>; \ template<> bool OriginalBenchmark, BMRK_FN>::init_description() BENCHMARK(IMB_window, Window) diff --git a/src_cpp/IO/IO_benchmark.cpp b/src_cpp/IO/IO_benchmark.cpp index 5ae94d8e..f8bb6105 100644 --- a/src_cpp/IO/IO_benchmark.cpp +++ b/src_cpp/IO/IO_benchmark.cpp @@ -70,9 +70,10 @@ extern "C" { using namespace std; -#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark, BMRK_FN>; \ -DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark, BMRK_FN>), BMRK_NAME) \ +#define BENCHMARK(BMRK_FN, BMRK_NAME) \ template<> smart_ptr OriginalBenchmark, BMRK_FN>::descr = NULL; \ +DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark, BMRK_FN>), BMRK_NAME) \ +template class OriginalBenchmark, BMRK_FN>; \ template<> bool OriginalBenchmark, BMRK_FN>::init_description() BENCHMARK(IMB_write_indv, S_Write_Indv) diff --git a/src_cpp/MPI1/MPI1_benchmark.cpp b/src_cpp/MPI1/MPI1_benchmark.cpp index 1ed85b7e..3d61d661 100644 --- a/src_cpp/MPI1/MPI1_benchmark.cpp +++ b/src_cpp/MPI1/MPI1_benchmark.cpp @@ -70,9 +70,10 @@ extern "C" { using namespace std; -#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark, BMRK_FN>; \ -DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark, BMRK_FN>), BMRK_NAME) \ +#define BENCHMARK(BMRK_FN, BMRK_NAME) \ template<> smart_ptr OriginalBenchmark, BMRK_FN>::descr = NULL; \ +DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark, BMRK_FN>), BMRK_NAME) \ +template class OriginalBenchmark, BMRK_FN>; \ template<> bool OriginalBenchmark, BMRK_FN>::init_description() diff --git a/src_cpp/MPI1/MPI1_suite.cpp b/src_cpp/MPI1/MPI1_suite.cpp index 0d89d9e2..fd8dc3ae 100644 --- a/src_cpp/MPI1/MPI1_suite.cpp +++ b/src_cpp/MPI1/MPI1_suite.cpp @@ -181,6 +181,11 @@ template <> bool BenchmarkSuite::declare_args(args_parser &parser, std: "\n" "Default:\n" "multi off\n"); + parser.add("window_size", 64).set_caption("WindowSize"). + set_description( + "Set uniband/biband send/recv window size\n" + "\n" + "Default: 64"); parser.add_vector("off_cache", "-1.0,0.0", ',', 1, 2). set_caption("cache_size[,cache_line_size]"). set_mode(args_parser::option::APPLY_DEFAULTS_ONLY_WHEN_MISSING). @@ -491,6 +496,9 @@ template <> bool BenchmarkSuite::prepare(const args_parser &parser, con // multi c_info.group_mode = parser.get("multi"); + // window_size + c_info.max_win_size = parser.get("window_size"); + // off_cache vector csize; parser.get("off_cache", csize); diff --git a/src_cpp/MPI1/Makefile_win.MPI1.mk b/src_cpp/MPI1/Makefile_win.MPI1.mk index f9c782cf..4dc3376f 100644 --- a/src_cpp/MPI1/Makefile_win.MPI1.mk +++ b/src_cpp/MPI1/Makefile_win.MPI1.mk @@ -52,6 +52,8 @@ CFLAGS = $(CFLAGS) -DMPI1 CPPFLAGS = $(CPPFLAGS) -DMPI1 C_SRC_DIR = ../$(C_SRC_DIR) +RC_FILE = ../WINDOWS/IMB-MPI1_VS_2017/IMB-MPI1.rc +RC = rc.exe C_OBJ = IMB_declare.obj \ IMB_init.obj \ @@ -86,7 +88,8 @@ C_OBJ = IMB_declare.obj \ IMB_gatherv.obj \ IMB_scatter.obj \ IMB_scatterv.obj \ - IMB_bandwidth.obj + IMB_bandwidth.obj \ + IMB-MPI1.res BECHMARK_SUITE_OBJ = MPI1_suite.obj \ MPI1_benchmark.obj\ @@ -105,3 +108,7 @@ BECHMARK_SUITE_OBJ = MPI1_suite.obj \ {MPI1/}.cpp.obj: $(CPP) /I"$(MPI_INCLUDE)" /I. $(CPPFLAGS) -c MPI1/$*.cpp +all: resources + +resources: + $(RC) /R /FO MPI1/IMB-MPI1.res $(RC_FILE) diff --git a/src_cpp/MT/MT_benchmark.cpp b/src_cpp/MT/MT_benchmark.cpp index 562cd084..2ce5706e 100644 --- a/src_cpp/MT/MT_benchmark.cpp +++ b/src_cpp/MT/MT_benchmark.cpp @@ -73,12 +73,14 @@ goods and services. return OLDNAME(repeat, skip, in, out, count, type, comm, rank, size, idata, odata); \ } -#define DECLARE_INHERITED_BENCHMARKMT2(BS, FUNC, NAME) template class BenchmarkMT; \ +#define DECLARE_INHERITED_BENCHMARKMT2(BS, FUNC, NAME) \ DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME3(BenchmarkMT), NAME) \ + template class BenchmarkMT; \ template <> void BenchmarkMT::init_flags() -#define DECLARE_INHERITED_BENCHMARKMT(BS, FUNC, NAME) template class BenchmarkMT; \ +#define DECLARE_INHERITED_BENCHMARKMT(BS, FUNC, NAME) \ DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME2(BenchmarkMT), NAME) \ + template class BenchmarkMT; \ template <> void BenchmarkMT::init_flags() diff --git a/src_cpp/MT/MT_suite.cpp b/src_cpp/MT/MT_suite.cpp index 9c00831a..7bdb9436 100644 --- a/src_cpp/MT/MT_suite.cpp +++ b/src_cpp/MT/MT_suite.cpp @@ -196,7 +196,7 @@ template <> bool BenchmarkSuite::prepare(const args_parser &parser, MPI_Comm_rank(MPI_COMM_WORLD, &rank); if (rank == 0 && !noheader) { output << "#------------------------------------------------------------------" << std::endl; - output << "# Intel(R) MPI Benchmarks " << "2019 Update 6" << ", MT part " << std::endl; + output << "# Intel(R) MPI Benchmarks " << "2021.1" << ", MT part " << std::endl; output << "#------------------------------------------------------------------" << std::endl; output << "#" << std::endl; } diff --git a/src_cpp/NBC/Makefile_win.NBC.mk b/src_cpp/NBC/Makefile_win.NBC.mk index 73bb3497..d5581a21 100644 --- a/src_cpp/NBC/Makefile_win.NBC.mk +++ b/src_cpp/NBC/Makefile_win.NBC.mk @@ -52,6 +52,8 @@ CPPFLAGS = $(CPPFLAGS) -DNBC CFLAGS = $(CFLAGS) -DNBC C_SRC_DIR = ../$(C_SRC_DIR) +RC_FILE = ../WINDOWS/IMB-NBC_VS_2017/IMB-NBC.rc +RC = rc.exe C_OBJ = IMB_allgather.obj \ IMB_allgatherv.obj \ @@ -80,7 +82,8 @@ C_OBJ = IMB_allgather.obj \ IMB_sendrecv.obj \ IMB_strgs.obj \ IMB_utils.obj \ - IMB_warm_up.obj + IMB_warm_up.obj \ + IMB-NBC.res BECHMARK_SUITE_OBJ = NBC_suite.obj \ NBC_benchmark.obj\ @@ -97,3 +100,8 @@ BECHMARK_SUITE_OBJ = NBC_suite.obj \ {NBC/}.cpp.obj: $(CPP) /I"$(MPI_INCLUDE)" /I. $(CPPFLAGS) -c NBC/$*.cpp + +all: resources + +resources: + $(RC) /R /FO NBC/IMB-NBC.res $(RC_FILE) diff --git a/src_cpp/NBC/NBC_benchmark.cpp b/src_cpp/NBC/NBC_benchmark.cpp index cfabc62b..bf01e89a 100644 --- a/src_cpp/NBC/NBC_benchmark.cpp +++ b/src_cpp/NBC/NBC_benchmark.cpp @@ -70,9 +70,10 @@ extern "C" { using namespace std; -#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark, BMRK_FN>; \ -DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark, BMRK_FN>), BMRK_NAME) \ +#define BENCHMARK(BMRK_FN, BMRK_NAME) \ template<> smart_ptr OriginalBenchmark, BMRK_FN>::descr = NULL; \ +DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark, BMRK_FN>), BMRK_NAME) \ +template class OriginalBenchmark, BMRK_FN>; \ template<> bool OriginalBenchmark, BMRK_FN>::init_description() BENCHMARK(IMB_ibcast, Ibcast) diff --git a/src_cpp/RMA/Makefile_win.RMA.mk b/src_cpp/RMA/Makefile_win.RMA.mk index 8b3c992c..c878d698 100644 --- a/src_cpp/RMA/Makefile_win.RMA.mk +++ b/src_cpp/RMA/Makefile_win.RMA.mk @@ -52,6 +52,8 @@ CPPFLAGS = $(CPPFLAGS) -DRMA CFLAGS = $(CFLAGS) -DRMA C_SRC_DIR = ../$(C_SRC_DIR) +RC_FILE = ../WINDOWS/IMB-RMA_VS_2017/IMB-RMA.rc +RC = rc.exe C_OBJ = IMB_declare.obj \ IMB_utils.obj \ @@ -70,7 +72,8 @@ C_OBJ = IMB_declare.obj \ IMB_rma_put.obj \ IMB_cpu_exploit.obj \ IMB_rma_get.obj \ - IMB_rma_atomic.obj + IMB_rma_atomic.obj \ + IMB-RMA.res BECHMARK_SUITE_OBJ = RMA_suite.obj \ RMA_benchmark.obj\ @@ -87,3 +90,8 @@ BECHMARK_SUITE_OBJ = RMA_suite.obj \ {RMA/}.cpp.obj: $(CPP) /I"$(MPI_INCLUDE)" /I. $(CPPFLAGS) -c RMA/$*.cpp + +all: resources + +resources: + $(RC) /R /FO RMA/IMB-RMA.res $(RC_FILE) diff --git a/src_cpp/RMA/RMA_benchmark.cpp b/src_cpp/RMA/RMA_benchmark.cpp index a62ae2e1..1f96f1c9 100644 --- a/src_cpp/RMA/RMA_benchmark.cpp +++ b/src_cpp/RMA/RMA_benchmark.cpp @@ -70,9 +70,10 @@ extern "C" { using namespace std; -#define BENCHMARK(BMRK_FN, BMRK_NAME) template class OriginalBenchmark, BMRK_FN>; \ -DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark, BMRK_FN>), BMRK_NAME) \ +#define BENCHMARK(BMRK_FN, BMRK_NAME) \ template<> smart_ptr OriginalBenchmark, BMRK_FN>::descr = NULL; \ +DECLARE_INHERITED_TEMPLATE(GLUE_TYPENAME(OriginalBenchmark, BMRK_FN>), BMRK_NAME) \ +template class OriginalBenchmark, BMRK_FN>; \ template<> bool OriginalBenchmark, BMRK_FN>::init_description() diff --git a/src_cpp/args_parser.h b/src_cpp/args_parser.h index dbc9febf..e4249676 100644 --- a/src_cpp/args_parser.h +++ b/src_cpp/args_parser.h @@ -216,7 +216,7 @@ class args_parser { protected: std::set flags; std::string current_group; - std::map > > expected_args; + std::map > > expected_args; std::vector unknown_args; option *prev_option; error_t last_error; diff --git a/src_cpp/helpers/helper_IMB_functions.h b/src_cpp/helpers/helper_IMB_functions.h old mode 100755 new mode 100644 diff --git a/src_cpp/imb.cpp b/src_cpp/imb.cpp index 6ae0dd44..6f058a5f 100644 --- a/src_cpp/imb.cpp +++ b/src_cpp/imb.cpp @@ -70,7 +70,7 @@ int main(int argc, char * *argv) bool no_mpi_init_flag = true; int return_value = 0; int rank = 0, size = 0; - const char *program_name = "Intel(R) MPI Benchmarks 2019 Update 6"; + const char *program_name = "Intel(R) MPI Benchmarks 2021.1"; std::ostringstream output; // Some unit tests for args parser @@ -327,6 +327,12 @@ int main(int argc, char * *argv) running_sequence sequence; for (vector::iterator it = benchmarks_to_run.begin(); it != benchmarks_to_run.end(); ++it) { + + string bn = *it; + if ((bn == "Uniband" || bn == "Biband") && rank == 0) { + std::cout << "Warning: " << bn << " window size will be changed in future. To set it use -window_size . Default is 64" << std::endl; + } + smart_ptr b = BenchmarkSuitesCollection::create(*it); if (b.get() == NULL) { throw logic_error("benchmark creator failed!");