Re: [AMBER-Developers] Help with Makefiles for pmemd.cuda

From: Ross Walker <>
Date: Thu, 4 Feb 2016 19:58:36 -0800

Awesome - thanks Jason. Testing now.

SPXP is deliberately commented out for now since I have a bunch of code to add - to replace the existing SPXP code and then it needs testing for numerical stability before we let it loose on users.

All the best

> On Feb 4, 2016, at 19:42, Jason Swails <> wrote:
> My explanation for what was happening is that it seems like "make" keeps
> track of all of the rules that it executes and satisfies. Since you added
> "cuda_lib_clean" as a prereq rule on 3 separate targets, it would "finish"
> on the first target and make would declare victory and decide it didn't
> need to run again on the other two.
> The solution I came up with was to move cuda_lib_clean out of the list of
> dependency targets for each of the programs and instead add a step to each
> of the pmemd.cuda_XPYP rules that was $(MAKE) cuda_lib_clean. This would
> launch a *new* make process targeting that rule, so the current make
> process would have no memory of having completed it. So it would be sure
> to run it every time.
> Also, the test build finished again and pmemd.cuda_SPXP still didn't get
> built, but that's because you have the cuda_SPXP rule commented out for
> cuda_serial. So it seems as though that's intentionally omitted.
> I haven't looked at the make docs to verify my suspicion, but it's a
> reasonable design optimization given typical uses for make and seems (to
> me) to be the simplest explanation consistent with everything we've seen.
> So I'm reasonably confident this is what was happening.
> On Thu, Feb 4, 2016 at 10:33 PM, Jason Swails <>
> wrote:
>> On Thu, Feb 4, 2016 at 10:26 PM, Jason Swails <>
>> wrote:
>>> On Thu, Feb 4, 2016 at 10:08 PM, Ross Walker <>
>>> wrote:
>>>> If you have a moment to take a look at the master and see if you can
>>>> figure out what is causing this still not to work it would be much
>>>> appreciated. I am pulling my hair out with this right now.
>>> ​Fixed in master, I think. Give it a try.
>> ​Actually it was only building SPFP and DPFP because you spelled SPXP as
>> SPZP in the cuda_serial rule. I'm running the build again now, but I
>> suspect all 3 targets will get built now, and it's passing the correct
>> compiler flags for each precision model. Parallel make works, too,
>> although it's a bit slower than necessary since it has to rebuild every
>> CUDA object every time (and nvcc is the slowest compiler known to man).
>> But it works (for some definitions of 'works')​.
>> --
>> Jason M. Swails
>> BioMaPS,
>> Rutgers University
>> Postdoctoral Researcher
> --
> Jason M. Swails
> BioMaPS,
> Rutgers University
> Postdoctoral Researcher
> _______________________________________________
> AMBER-Developers mailing list

AMBER-Developers mailing list
Received on Thu Feb 04 2016 - 20:00:05 PST
Custom Search