{"action":"created","issue":{"url":"https://api.github.com/repos/pandegroup/openmm/issues/907","labels_url":"https://api.github.com/repos/pandegroup/openmm/issues/907/labels{/name}","comments_url":"https://api.github.com/repos/pandegroup/openmm/issues/907/comments","events_url":"https://api.github.com/repos/pandegroup/openmm/issues/907/events","html_url":"https://github.com/pandegroup/openmm/issues/907","id":75033279,"number":907,"title":"Significant potential energy discrepancy on CPU platform for solvated system","user":{"login":"jchodera","id":3656088,"avatar_url":"https://avatars.githubusercontent.com/u/3656088?v=3","gravatar_id":"","url":"https://api.github.com/users/jchodera","html_url":"https://github.com/jchodera","followers_url":"https://api.github.com/users/jchodera/followers","following_url":"https://api.github.com/users/jchodera/following{/other_user}","gists_url":"https://api.github.com/users/jchodera/gists{/gist_id}","starred_url":"https://api.github.com/users/jchodera/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jchodera/subscriptions","organizations_url":"https://api.github.com/users/jchodera/orgs","repos_url":"https://api.github.com/users/jchodera/repos","events_url":"https://api.github.com/users/jchodera/events{/privacy}","received_events_url":"https://api.github.com/users/jchodera/received_events","type":"User","site_admin":false},"labels":[],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":94,"created_at":"2015-05-11T00:17:45Z","updated_at":"2015-05-13T22:47:34Z","closed_at":null,"body":"We've been working on an updated version of our comparison of a battery of test systems across OpenMM platforms to ensure that potential energies and forces agree.\r\n\r\nWe recently updated our test for Src kinase in implicit and explicit solvent, where `2src` is pulled from the RCSB, prepared with PDBFixer, solvated, and minimized:\r\nhttps://github.com/choderalab/openmmtools/pull/56\r\n\r\nThe potential energy is surprisingly off by ~2 kcal/mol on the CPU platform on linux, while the forces are quite a bit more accurate than that:\r\n```\r\nSrcExplicit\r\n                       Reference   -278504.231592 kcal/mol         0.000000 kcal/mol       265.946679 kcal/mol         0.000000 kcal/mol\r\n                             CPU   -278502.325615 kcal/mol         1.905977 kcal/mol       265.946846 kcal/mol         0.010746 kcal/mol\r\n                                 WARNING: Potential energy error (1.905977 kcal/mol) exceeds tolerance (0.060000 kcal/mol).  Test failed.\r\n                            CUDA   -278504.315487 kcal/mol        -0.083894 kcal/mol       265.946591 kcal/mol         0.011991 kcal/mol\r\n                                 WARNING: Potential energy error (-0.083894 kcal/mol) exceeds tolerance (0.060000 kcal/mol).  Test failed.\r\n                          OpenCL   -278504.312023 kcal/mol        -0.080431 kcal/mol       265.946592 kcal/mol         0.011952 kcal/mol\r\n                                 WARNING: Potential energy error (-0.080431 kcal/mol) exceeds tolerance (0.060000 kcal/mol).  Test failed.\r\nWriting failed test system to 'SrcExplicit'.{system,state}.xml ...\r\n```\r\nThe error seems to be in the `NonbondedForce` component:\r\n```\r\nBreakdown of discrepancies by Force component:\r\nHarmonicBondForce\r\n                        platform        potential                     error                 force mag                 rms error\r\n                       Reference       241.355704 kcal/mol         0.000000 kcal/mol        24.533954 kcal/mol         0.000000 kcal/mol\r\n                             CPU       241.355704 kcal/mol         0.000000 kcal/mol        24.533954 kcal/mol         0.000000 kcal/mol\r\n                            CUDA       241.355910 kcal/mol         0.000206 kcal/mol        24.533902 kcal/mol         0.004766 kcal/mol\r\n                          OpenCL       241.355910 kcal/mol         0.000206 kcal/mol        24.533902 kcal/mol         0.004766 kcal/mol\r\nHarmonicAngleForce\r\n                        platform        potential                     error                 force mag                 rms error\r\n                       Reference       930.825886 kcal/mol         0.000000 kcal/mol        24.503043 kcal/mol         0.000000 kcal/mol\r\n                             CPU       930.825886 kcal/mol         0.000000 kcal/mol        24.503043 kcal/mol         0.000000 kcal/mol\r\n                            CUDA       930.826165 kcal/mol         0.000279 kcal/mol        24.503047 kcal/mol         0.002280 kcal/mol\r\n                          OpenCL       930.825942 kcal/mol         0.000056 kcal/mol        24.503044 kcal/mol         0.002280 kcal/mol\r\nPeriodicTorsionForce\r\n                        platform        potential                     error                 force mag                 rms error\r\n                       Reference      4370.242637 kcal/mol         0.000000 kcal/mol         8.505245 kcal/mol         0.000000 kcal/mol\r\n                             CPU      4370.242637 kcal/mol        -0.000000 kcal/mol         8.505245 kcal/mol         0.000000 kcal/mol\r\n                            CUDA      4370.242513 kcal/mol        -0.000124 kcal/mol         8.505225 kcal/mol         0.000682 kcal/mol\r\n                          OpenCL      4370.242327 kcal/mol        -0.000310 kcal/mol         8.505224 kcal/mol         0.000682 kcal/mol\r\nNonbondedForce\r\n                        platform        potential                     error                 force mag                 rms error\r\n                       Reference   -284046.655818 kcal/mol         0.000000 kcal/mol       267.024399 kcal/mol         0.000000 kcal/mol\r\n                             CPU   -284044.749725 kcal/mol         1.906094 kcal/mol       267.024565 kcal/mol         0.010746 kcal/mol\r\n                            CUDA   -284046.741833 kcal/mol        -0.086015 kcal/mol       267.024310 kcal/mol         0.010281 kcal/mol\r\n                          OpenCL   -284046.740408 kcal/mol        -0.084590 kcal/mol       267.024311 kcal/mol         0.010236 kcal/mol\r\nCMMotionRemover\r\n                        platform        potential                     error                 force mag                 rms error\r\n                       Reference         0.000000 kcal/mol         0.000000 kcal/mol         0.000000 kcal/mol         0.000000 kcal/mol\r\n                             CPU         0.000000 kcal/mol         0.000000 kcal/mol         0.000000 kcal/mol         0.000000 kcal/mol\r\n                            CUDA         0.000000 kcal/mol         0.000000 kcal/mol         0.000000 kcal/mol         0.000000 kcal/mol\r\n                          OpenCL         0.000000 kcal/mol         0.000000 kcal/mol         0.000000 kcal/mol         0.000000 kcal/mol\r\n```\r\nTest case failures emit serialized XML files to aid in debugging.  I've uploaded them here:\r\nhttps://gist.github.com/jchodera/ab6120ed6041ea764fc5\r\n\r\nIt would be great if it was possible to take a closer look as to what might be going on here.  The agreement seems to be quite good except for the CPU platform energies."},"comment":{"url":"https://api.github.com/repos/pandegroup/openmm/issues/comments/101840343","html_url":"https://github.com/pandegroup/openmm/issues/907#issuecomment-101840343","issue_url":"https://api.github.com/repos/pandegroup/openmm/issues/907","id":101840343,"user":{"login":"VijayPande","id":2255932,"avatar_url":"https://avatars.githubusercontent.com/u/2255932?v=3","gravatar_id":"","url":"https://api.github.com/users/VijayPande","html_url":"https://github.com/VijayPande","followers_url":"https://api.github.com/users/VijayPande/followers","following_url":"https://api.github.com/users/VijayPande/following{/other_user}","gists_url":"https://api.github.com/users/VijayPande/gists{/gist_id}","starred_url":"https://api.github.com/users/VijayPande/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/VijayPande/subscriptions","organizations_url":"https://api.github.com/users/VijayPande/orgs","repos_url":"https://api.github.com/users/VijayPande/repos","events_url":"https://api.github.com/users/VijayPande/events{/privacy}","received_events_url":"https://api.github.com/users/VijayPande/received_events","type":"User","site_admin":false},"created_at":"2015-05-13T22:47:34Z","updated_at":"2015-05-13T22:47:34Z","body":"Or just greater use of double for the accumulation of energies.\n\n\n\n> On May 13, 2015, at 3:39 PM, John Chodera <notifications@github.com> wrote:\n> \n> Sadly, it's the other way around. It's much easier to get high accuracy in the forces than the energies!\n> \n> I wonder if there's a way to use single-precision kernels for forces and double-precision kernels for energies without being a total nightmare to work with...\n> \n> —\n> Reply to this email directly or view it on GitHub <https://github.com/pandegroup/openmm/issues/907#issuecomment-101839265>.\n> \n\n"}}