[gmx-developers] Gromacs-2016: Win64 quasi-portable

Boris Timofeev boristim at mail.ru
Mon Oct 3 17:00:59 CEST 2016


Hi,
I'd used developping tools for make "Win64 portable":
Cmake 3.6.0
Microsoft Visual Studio Community 2015 Version 14.0.25431.01 Update 3
Perl v5.24.0
Python 3.5
Changes in CMake project:
It is very important to add "binmode.obj" to 
CMAKE_CXX_STANDARD_LIBRARIES and CMAKE_C_STANDARD_LIBRARIES
(because by default Windows opens files in text mode, and all binary seeks and reads fails).
Optionally you can add wsock32.lib for networking.
Change in sources:
..\gromacs-2016\src\gromacs\gpu_utils\ocl_caching.cpp Line 80: 
It's need to remove keyword "static" - VC give an compilation error.
To auto-execute unittests from VS IDE:
..\gromacs-2016\CMakeLists.txt Line 888:
Add flag and build configuration to tests ( "-C Release" an example ):
add_custom_target(run-ctest
COMMAND ${CMAKE_CTEST_COMMAND} -C Release --output-on-failure
COMMENT "Running all tests"

VERBATIM)
 
To auto-execute regressiontests from VS IDE:
1. After regresiontests has been installed:
..\gromacs-2016\tests\CMakeLists.txt Line 40:
add path to regressiontests, as example:
...
option(REGRESSIONTEST_DOWNLOAD
"Automatically download regressiontests. Tests can be run with ctest." OFF)
set(REGRESSIONTEST_PATH "C:/gromacs-2016/build/tests/regressiontests-2016")
if(REGRESSIONTEST_DOWNLOAD)
....
2. ..\gromacs-2016\tests\CMakeLists.txt Line 90:
Remove option "CMAKE_CONFIGURATION_TYPES":
if(REGRESSIONTEST_PATH AND (GMX_BLUEGENE OR CMAKE_CROSSCOMPILING OR GMX_BUILD_MDRUN_ONLY))

When this changes was applyed, all regressiontests will automatically starts from Visual Studio IDE 
after project builds.
Finally, in attachment, a sample of batch file to execute all tests without IDE from command line
>Понедельник,  3 октября 2016, 9:59 +03:00 от Mark Abraham <mark.j.abraham at gmail.com>:
>
>Hi,
>
>On Mon, Oct 3, 2016 at 12:01 AM Justin Lemkul < jalemkul at vt.edu > wrote:
>>
>>
>>On 10/2/16 5:42 PM, Boris Timofeev wrote:
>>>
>>> Good afternoon to all!
>>>
>>> I did a great job on compilation of the "portable" Gromacs-2016 version on the
>>> Win64  platform without cygwin with OpenCL support and  AVX_256/AVX2_256
>>> expansions. The project is builded on VS-2015. By small changes in CMakeLists, I
>>> managed to achieve that both the "embedded" tests, and regressiontests, are
>>> executed after assembly immediately from VS IDE. It was tested on Windows7/
>>> Windows10  with IntelCore i3, i5, i7  processors and video cards from Nvidia and
>>> AMD. So far it was not succeeded to win  - against the video card from Intel -
>>> Intel OpenCL compiler preprocessor is left unfinished, does not recognize
>>> directive "-I" and have buggy concatention (##) implementation.
>>> It was necessary to realize a primitive preprocessor,  became successful, but
>>> all the same calculations (tests and regressiontests) are wrong as it was
>>> already metioned here ( https://bugs.freedesktop.org/show_bug.cgi ?
>>> id=94265#add_comment).
>
>Intel isn't supported - see  http://manual.gromacs.org/documentation/2016/user-guide/mdrun-performance.html#running-the-opencl-version-of-mdrun
>
>  > If it is interesting to community, I am ready to report about some necessary
>>> changes in progect and to provide the main CMake-file.
>
>Suggestions are indeed welcome. :-) If you want to apply a fix to our git branch called release-2016, you can upload that to our code review site  https://gerrit.gromacs.org/#/q/status:open . Instructions at  http://www.gromacs.org/Developer_Zone/Git/Gerrit . Or if it's a simple thing, just describe it here.
>  > There are several questions to developers.
>>>
>>> 1. The nbnxn_ocl_kernel_nvidia.clh, nbnxn_ocl_kernel_nowarp.clh and
>>> nbnxn_ocl_kernel_amd.clh files, if to compare their with kdiff, differ only in
>>> comments and lack of unroll pragma for Nvidia. Why not to unite them in one?
>>> Where the promised optimization?
>
>Nobody has had the resources to look into that more closely, but with GROMACS being an open source project, such contributions are welcome! NVIDIA isn't a priority because there the native CUDA port does better (and NVIDIA's OpenCL seems to have a bug that means the non-blocking offloading calls that GROMACS needs run blocking style).
>
>>> 2. Why in the Gromacs'a code so many paths to files are embedded up? To start
>>> tests without development environment on other computer it is necessary to copy
>>> practically all project.
>
>I'm not sure what you're referring to. The JIT compilation that is required for OpenCL requires that some source code is available. The regression tests run a lot of simulations, and those require to be able to read the databases of how to describe simulation systems. Nor have we targeted being able to run the tests with neither a development environment nor a full installation available, since we've never encountered a need for that.
>
>Mark
>  > 3. A question "on science". When performing an example of
>>>  http://www.bevanlab.biochem.vt.edu/Pages/Personal/justin/gmx-tutorials/lysozyme/01_pdb2gmx.html ,
>>>  pdb2gmx for the aminoacid residue  HIS ("HIZE-branch" on stdout ), unlike all
>>> others residue,  gives a nonintegral charge 0.883,  inexplicable with round-off
>>> errors.
>>> Whether there is no program mistake here?
>>>
>>
>>I can't speak to points 1 and 2, but here: what is HIZE-branch?  I've never
>>heard of that.  Note, too, that if you're working with a single amino acid with
>>OPLS-AA, you can't rely on the default terminus selection.  You need to choose
>>the zwitterion termini, otherwise the charges will be junk because OPLS-AA makes
>>changes to CA depending on whether the residue is a zwitterion or in a polypeptide.
>>
>>-Justin
>>
>>--
>>==================================================
>>
>>Justin A. Lemkul, Ph.D.
>>Ruth L. Kirschstein NRSA Postdoctoral Fellow
>>
>>Department of Pharmaceutical Sciences
>>School of Pharmacy
>>Health Sciences Facility II, Room 629
>>University of Maryland, Baltimore
>>20 Penn St.
>>Baltimore, MD 21201
>>
>>jalemkul at outerbanks.umaryland.edu | (410) 706-7441
>>http://mackerell.umaryland.edu/~jalemkul
>>
>>==================================================
>>--
>>Gromacs Developers mailing list
>>
>>* Please search the archive at  http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before posting!
>>
>>* Can't post? Read  http://www.gromacs.org/Support/Mailing_Lists
>>
>>* For (un)subscribe requests visit
>>https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers or send a mail to  gmx-developers-request at gromacs.org .
>-- 
>Gromacs Developers mailing list
>
>* Please search the archive at  http://www.gromacs.org/Support/Mailing_Lists/GMX-developers_List before posting!
>
>* Can't post? Read  http://www.gromacs.org/Support/Mailing_Lists
>
>* For (un)subscribe requests visit
>https://maillist.sys.kth.se/mailman/listinfo/gromacs.org_gmx-developers or send a mail to gmx-developers-request at gromacs.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20161003/f56b1d53/attachment-0001.html>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: gmxtests.bat
Type: application/octet-stream
Size: 4071 bytes
Desc: not available
URL: <http://maillist.sys.kth.se/pipermail/gromacs.org_gmx-developers/attachments/20161003/f56b1d53/attachment-0001.obj>


More information about the gromacs.org_gmx-developers mailing list