CVS analysis' parameters 
Project module namevmd
CVS root used/home/cvs/vmd/cvsroot
Range analysisMain Branch (HEAD)
Date analysis2019-10-17 02:30 (Built in 96s)
CVS report for module 'vmd' built by cvschangelogbuilder 2.3 (build 1.76) with option buildhtmlreport.
Summary   Lines of code   Developers activity   Days of week   Hours  Tags  Last commits  

 
SummaryTop 
Current status indicatorsValue  
Files currently in repository 877 
Lines of code currently in repository (on non binary files only) 411252 
Activity indicatorsFrom startThis monthToday
Number of developers 2611
Number of commits36109251
Number of commits by status 1276 to add new file
34434 to change existing file
399 to remove file 
25 to change existing file
 
1 to change existing file
 
Different files commited 1254131
Lines added / modified / removed (on non binary files only) +607392 / 273197 / -196140+438 / 200 / -6+2 / 1 / -0
Last commit 2019-10-172019-10-172019-10-17

 
Lines of code*Top 
This chart represents the balance between number of lines added and removed in non binary files (source files).
 
 

 
Developers activity*Top 
DeveloperNumber of commitsDifferent files commitedLines*
(added, modified, removed)
Lines by commit*
(added, modified, removed)
Last commit 
johns226991211346378 / 162353 / 9884415.2 / 7.1 / 4.32019-10-17 05:46 
justin720868065345 / 38338 / 765679 / 5.3 / 10.62003-08-29 23:53 
billh164035871754 / 20025 / 365843.7 / 12.2 / 2.21996-04-10 04:57 
dalke135430657277 / 14001 / 521542.3 / 10.3 / 3.81998-09-11 15:17 
saam8544017267 / 14555 / 437120.2 / 17 / 5.12011-06-20 18:26 
pgrayson5141246934 / 2388 / 52513.4 / 4.6 / 12002-06-26 18:46 
jordi4691207001 / 3656 / 89514.9 / 7.7 / 1.92007-10-26 21:04 
sergei4563545952 / 6156 / 79913 / 13.5 / 1.71998-09-24 04:47 
danorris180495092 / 3518 / 173828.2 / 19.5 / 9.62001-11-30 18:24 
eamon133461011 / 1359 / 2697.6 / 10.2 / 22004-05-26 19:03 
ulrich98626225 / 393 / 5063.5 / 4 / 0.51997-05-15 06:06 
dhardy9385166 / 1350 / 210155.5 / 14.5 / 22.52010-06-10 22:36 
brendanbc172171095 / 1034 / 10515.2 / 14.3 / 1.42018-05-11 16:59 
kvandivo7216928 / 526 / 1212.8 / 7.3 / 0.12014-12-18 00:16 
khamer55172375 / 343 / 1243.1 / 6.2 / 0.21995-06-05 16:00 
leech52362540 / 750 / 1648.8 / 14.4 / 0.31996-11-22 02:54 
barryi44141869 / 1675 / 13042.4 / 38 / 2.92003-08-07 03:40 
akohlmey4426920 / 214 / 19420.9 / 4.8 / 4.42011-12-06 05:04 
ryanmcgreevy318964 / 214 / 61931 / 6.9 / 19.92019-07-22 19:27 
reeves1515801 / 461 / 1953.4 / 30.7 / 1.21996-12-20 08:02 
ltrabuco137206 / 114 / 115.8 / 8.7 / 02009-12-06 21:28 
bishop86299 / 26 / 037.3 / 3.2 / 01995-10-20 00:09 
johns22251 / 131 / 025.5 / 65.5 / 01998-05-30 00:59 
brunner111 / 3 / 01 / 3 / 02009-06-15 21:33 
johanstr110 / 3 / 00 / 3 / 02011-12-02 23:10 
petefred110 / 2 / 00 / 2 / 02006-09-26 23:17 

                   


 
Activity by days of weekTop 


 
Activity by hoursTop 


 
Last tags by dateTop 
DateFull dateTags 
2019-06-052019-06-05 05:32vmd-first-python3 
2019-05-222019-05-22 18:47vmd-last-python2 
2019-03-122019-03-12 20:06raytracinggems2019 
2018-08-282018-08-28 17:23siggraph2018 
2018-03-222018-03-22 03:52gtc2018-segprofile-final 
2018-03-072018-03-07 19:26gtc2018-seggigavoxels 
2018-03-022018-03-02 05:04gtc2018-segprofile 
2016-12-012016-12-01 05:40vmd-1-9-3 
2015-09-202015-09-20 20:56vr2016 
2014-12-302014-12-30 05:45vmd-1-9-2 
2014-11-082014-11-08 06:52quicksurf-globalization 
2014-11-072014-11-07 19:02sc2014-demos 
2013-10-112013-10-11 21:29ultravis2013 
2012-02-022012-02-02 04:15vmd-1-9-1 
2011-06-162011-06-16 15:40removeidxdispcmds 
2011-06-162011-06-16 02:25atomselrange 
2011-03-142011-03-14 17:54vmd-1-9-0 
2011-01-182011-01-18 15:32lastorbifdefs 
2009-11-052009-11-05 22:29msmpot-nonperiodic 
2009-08-072009-08-07 06:08vmd-1-8-7 
2009-04-292009-04-29 15:43hpg2009-submit 
2009-02-252009-02-25 01:28volmap-ils-estatics-orig 
2009-02-112009-02-11 00:44gpgpu-2009-final 
2008-12-032008-12-03 00:33qm-nosorting-1 
2007-05-142007-05-14 22:00cuda-0-8-0 
2007-04-052007-04-05 18:21vmd-1-8-6 
2006-08-262006-08-26 05:33vmd-1-8-5 
2006-04-172006-04-17 07:41vmd-1-8-4 
2005-02-162005-02-16 06:07vmd-1-8-3 
2003-12-052003-12-05 19:09vmd-1-8-2 
2003-06-152003-06-15 18:32vmd-1-8-1 
2002-12-092002-12-09 05:44vmd-1-8-0 

 
Last commit logsTop 
TagsDateDeveloperLast 200 Commit Logs
 2019-10-17johnsStarting updating feature list for recent changes
* README 1.410 (changed +3 -1)
 2019-10-16johns64-bit MacOS X builds for Catalina and later don't support CUDA or OpenCL
since Apple has killed off both of them.
* Makefile 1.122 (changed +2 -2)
Implemented a macro workaround for MacOS X failing to provide the C99
math routines such as sincosf() in their headers on MacOS X 10.10 and
earlier, when compiling in 64-bit mode.
* src/utilities.h 1.113 (changed +9 -1)
 2019-10-11johnsBegan doxygen cleanup
* src/QMData.h 1.88 (changed +26 -32)
 2019-10-09johnsAdded User's Guide bib refs for various RMSD and clustering algorithms.
Revised the text in the "measure cluster" documentation to begin
addressing a critique on the description of the lineage of the
algorithm implementation in VMD to specify more clearly that it is
most closely a variant of Daura's algorithm.
* doc/ug_text_ui.tex 1.239 (changed +10 -5)
* doc/ug.bib 1.13 (changed +145 -1)
 2019-10-08johnsApplied the same optimizations from the point volume rendering method
to the lit points method, and improved various other bits of code.
* src/DrawMolItemVolume.C 1.175 (changed +39 -21)
Began improvement of the volume gradient calculation loops
* src/VolumetricData.C 1.62 (changed +5 -3)
Corrected voxel accessor methods to promote member variables to
long integer types for indexing calculations to prevent
integer wraparound with very large volumes.
* src/VolumetricData.h 1.50 (changed +4 -4)
Optimized the volume gradient calculation
* src/VolumetricData.C 1.63 (changed +26 -17)
Pre-extend per-vertex color arrays for uniform color meshes to reduce
overhead. Added comments about eliminating per-vertex color storage
to improve performance when we are using volumetric texturing or the like.
* src/Isosurface.C 1.52 (changed +12 -3)
Updated comments about isosurface mesh generation and texturing.
* src/DrawMolItemVolume.C 1.176 (changed +8 -5)
Updated the volume side length/axes assignment and scaling methods to
force recomputation of the volume gradient since the gradients are
computed with respect to the voxel side length ratios
* src/VolumetricData.h 1.51 (changed +22 -4)
 2019-10-07johnsAdded "mol voxaxes" and "mol volscale" commands to allow manipulation
of the volume orientation and scale. These commands do not affect any of
the statistics reported by methods in the VolumetricData class, but they
do require a call to mol->force_recalc(DrawMolItem::COL_REGEN) to ensure
reps referring to the volumes are drawn correctly after changes are made.
* src/cmd_mol.C 1.134 (changed +85 -8)
* src/VolumetricData.h 1.48 (changed +34 -2)
Continued streamlining "mol volXXX" implementations and added new
"volorigin" command to allow the user to overwrite the origin of
the volume.
* src/cmd_mol.C 1.135 (changed +41 -7)
* src/VolumetricData.h 1.49 (changed +16 -1)
 2019-10-04johnsHoist some redundant work out of the ribbon extrusion template generation loop
* src/DrawMolItemRibbons.C 1.152 (changed +3 -2)
Reduced ribbon loop control overhead and improved floating point constant
consistency.
* src/DrawMolItemRibbons.C 1.151 (changed +8 -8)
 2019-10-01johnsConst correctness
* src/DrawMolItemVolume.C 1.174 (changed +2 -2)
Corrected indexing arithmetic for 3-D texture maps larger than 4 gigavoxels.
* src/VolumeTexture.C 1.24 (changed +41 -20)
Don't call gridsize() method in loop bound test, use cached value instead.
* src/VolumetricData.C 1.61 (changed +30 -23)
Improved color scale texture map generation performance by another 20%
* src/VolumeTexture.C 1.27 (changed +17 -17)
Improved performance of color-by-volume texture generation loops
* src/VolumeTexture.C 1.25 (changed +39 -16)
Updated integer color index range clamping code to ensure branchless
code generation on most compilers and hardware platforms.
* src/VolumeTexture.C 1.26 (changed +11 -1)
 2019-09-30johnsImproved efficiency of the "points" volume rendering methods with
an improved voxel value test criteria.
* src/DrawMolItemVolume.C 1.173 (changed +7 -17)
 2019-09-27johnsCorrected test condition structure.
* src/VMDApp.C 1.565 (changed +2 -2)
Eliminated unused display command object.
* src/MoleculeGraphics.C 1.79 (changed +1 -2)
Eliminated unused variables.
* src/MeasureVolInterior.C 1.15 (changed +1 -4)
Eliminated usage of the old "register" keyword deprecated in C++17 and beyond
* src/GeometryMol.C 1.58 (changed +4 -4)
Make use of sincos() rather than separate sin() and cos() calls.
* src/VMDQuat.C 1.14 (changed +15 -13)
* src/Timestep.C 1.73 (changed +3 -3)
* src/QMData.C 1.105 (changed +3 -3)
* src/MeasureSurface.C 1.11 (changed +4 -3)
Make use of sincosf() rather than separate calls to sinf() and cosf().
* src/PSDisplayDevice.C 1.117 (changed +3 -5)
* src/OpenGLRenderer.C 1.470 (changed +5 -9)
* src/Measure.C 1.150 (changed +13 -7)
* src/Matrix4.C 1.57 (changed +13 -12)
* src/GelatoDisplayDevice.C 1.35 (changed +7 -6)
* src/FileRenderer.C 1.184 (changed +4 -7)
* src/DrawRingsUtils.C 1.41 (changed +9 -6)
* src/DrawMolItemRings.C 1.28 (changed +4 -7)
* src/DrawMolItemRibbons.C 1.150 (changed +2 -3)
Make use of sincosf() rather than separate sinf() and cosf() calls.
* src/VolMapCreateILS.C 1.170 (changed +5 -3)
Updated the measure volinterior code to the latest revision from Alex and
did updates for comments that have already been addressed, and further
revision and cleanup for a few of the easy issues that still needed
attention.
* src/utilities.h 1.112 (changed +10 -1)
* src/utilities.C 1.174 (changed +196 -2)
* src/TclMeasure.C 1.177 (changed +30 -130)
* src/MeasureVolInterior.h 1.5 (changed +6 -10)
* src/MeasureVolInterior.C 1.14 (changed +18 -119)
 2019-09-26johnsEliminated single DPICKPOINT primitives from all of the display command
processing loops.
* src/OpenGLRenderer.C 1.468 (changed +1 -2)
* src/FileRenderer.C 1.182 (changed +1 -7)
* src/DisplayDevice.C 1.148 (changed +1 -69)
* src/DispCmds.h 1.113 (changed +2 -2)
* src/DispCmds.C 1.114 (changed +1 -12)
Eliminated use of individual pick point primitives in favor of
pick point arrays, so the individual pick point primitives can be
completely eliminated from VMD display command processing loops.
* src/MoleculeGraphics.C 1.77 (changed +14 -3)
* src/DrawMolItem.h 1.185 (changed +1 -2)
* src/DrawMolItem.C 1.368 (changed +7 -2)
* src/Axes.h 1.42 (changed +1 -2)
* src/Axes.C 1.73 (changed +20 -8)
Pretty up the display command enumeration
* src/DispCmds.h 1.115 (changed +2 -4)
Started eliminating individual pick point primitives in favor of
pick point arrays, so the individual pick point primitives can be
completely eliminated from VMD display command processing loops.
* src/Stage.h 1.42 (changed +1 -2)
* src/Stage.C 1.54 (changed +14 -2)
Streamlining and optimization of VMD display command tokens
and reduced dependence on persistent renderer state in favor of
self-contained display command state. These changes will permit
higher performance back-end renderer implementations and will
eventually allow independent parallel/concurrent rendering of
multiple display command tokens.
* src/VMDTitle.C 1.61 (changed +8 -9)
* src/PSDisplayDevice.C 1.116 (changed +3 -7)
* src/OpenGLRenderer.C 1.469 (changed +5 -17)
* src/MoleculeGraphics.C 1.78 (changed +2 -4)
* src/GeometryMol.C 1.57 (changed +3 -8)
* src/FileRenderer.h 1.128 (changed +1 -4)
* src/FileRenderer.C 1.183 (changed +8 -20)
* src/FPS.C 1.20 (changed +1 -1)
* src/DispCmds.h 1.114 (changed +19 -20)
* src/DispCmds.C 1.115 (changed +8 -22)
* src/Axes.C 1.74 (changed +4 -4)
 2019-09-25johnsFixed handling of trajectory reader plugins that require the special
MOLFILE_NUMATOMS_UNKNOWN flag to indicate that the trajectory format
does not include atom count information and that it must be paired with
a structure file that provides this information. The matching structure
file must be loaded first as always, and then the trajectory read code
path will allow the MOLFILE_NUMATOMS_UNKNOWN result to permit reading
of the trajectory.
* src/VMDApp.C 1.564 (changed +9 -3)
 2019-09-18johnsUpdated Win32 registry key string
* src/win32vmdstart.c 1.47 (changed +3 -3)
 2019-09-12johnsAdded comments about isosurface extraction for multi-gigavoxel volumes,
OpenGL triangle mesh indexing issues, multi-pass MC isosurface extraction,
and thread pool usage.
* src/DrawMolItemVolume.C 1.170 (changed +25 -2)
Changed the VMD volume loading code to defer calculation of
volume gradient maps on-demand, when dealing with huge volumes where the
gradient map would consume more than 3GB of RAM.
* src/BaseMolecule.C 1.273 (changed +16 -6)
Changed the point-based volume rendering code to automatically break up
geometry batches into chunks of 10 million elements or less to avoid
various types of OpenGL vertex indexing and buffer size limits when
rendering multi-gigavoxel volumes.
* src/DrawMolItemVolume.C 1.171 (changed +50 -15)
Substantial optimizations added to DrawMolItem::draw_volume_isosurface_points()
to enable visualization of large tomography volumes. Tested up to
33 gigavoxels so far. Revised the innermost loop memory traversal behavior
and improved the isovalue test logic to greatly reduce overheads. At this
point to get further performance we need a different display command that
assumes uniform point coloring so we can avoid generating color-per-vertex
input arrays that presently double the required memory storage and bandwidth.
* src/DrawMolItemVolume.C 1.172 (changed +37 -14)
 2019-09-11johnsCleanup and optimization of CPU marching cubes isosurface extraction code
while working on improved handling for huge volumes.
* src/Isosurface.h 1.32 (changed +3 -3)
* src/Isosurface.C 1.51 (changed +52 -36)
* src/DrawMolItemVolume.C 1.169 (changed +13 -7)
Corrected MolAtom forward declaration to be a class as it should be.
* src/PickModeForce.h 1.17 (changed +2 -2)
Made the extend() method public so that performance-critical graphics
related loops can be optimized to use a zero-copy approach, eliminating
use of the appendX() methods in their innermost loops, and enabling
direct writes to the final buffer position. This is particularly
valuable for marching cubes, sphere, and point-based rendering methods
where the appendX() methods can incur significant overhead relative to
the rest of the (simple) arithmetic in the innermost loops of such code.
* src/ResizeArray.h 1.54 (changed +21 -20)
 2019-09-10johnsCorrected point-based volume representation indexing arithmetic to handle
multi-billion voxel volumes. Somehow the point methods weren't updated
when the others were.
* src/DrawMolItemVolume.C 1.167 (changed +13 -10)
Improved the performance and volume size scalability for both the point-based
volume representations and the FieldLines representation seed calculations.
* src/DrawMolItemVolume.C 1.168 (changed +45 -20)
 2019-08-27johnsCranked version
* configure 1.1477 (changed +1 -1)
Switch optix rev for old targets
* configure 1.1478 (changed +5 -5)
 2019-08-16johnsAdded performance related source code comments for future improvements.
* src/TclMeasure.C 1.176 (changed +21 -5)
Cleaned up various minor issues in the new volinterior code, removing
and/or annotating a few bogus constructs that had been left in the code,
marking functions that should be migrated out of this code which is
just meant to create bindings for the scripting language, and eliminated
poorly formatted code such as bad indentation and use of tab characters.
* src/TclMeasure.C 1.173 (changed +83 -76)
Corrected various code formatting issues eliminating tabs etc.
Annoted poor conditional execution constructs and other weak areas
of implementation while correcting formatting transgressions.
* src/TclMeasure.C 1.174 (changed +176 -175)
Eliminated all of the unnecessary (const VolumetricData *) casts.
* src/TclMeasure.C 1.175 (changed +28 -28)
Hoisted and precalculated a few trivial quantities, and added significant
comments about places where we can further improve performance.
* src/MeasureVolInterior.C 1.13 (changed +46 -22)
Pulled in U. Del team's revs for the volinterior code from their latest
version, including probability maps.
* src/TclMeasure.C 1.172 (changed +332 -36)
* src/MeasureVolInterior.h 1.4 (changed +16 -1)
* src/MeasureVolInterior.C 1.12 (changed +359 -3)
 2019-07-27johnsA36 compiled with CUDA 9.2
* configure 1.1476 (changed +4 -4)
 2019-07-25johnsRevised the recursive ray generation logic for the transparency peeling
implementation in the internal OptiX ray tracing engine.
For correct operation with the RTX runtime strategy and its
associated stack management scheme, we MUST increment the
ray recursion depth counter when performing transparent surface
peeling, otherwise we could go beyond the max ray recursion depth
that we previously requested from OptiX. This will work less well
than the former approach in terms of worst-case visual outcomes,
but we presently have no alternative and must avoid more serious
issues with runtime stack overruns. This may be a good time to
revisit whether or not we can more efficiently "continue" the
ray ignoring the current intersection by some other API, more like
we do for shadow handling for transparent surfaces with any-hit rays.
If we could perform a "continue" that would eliminate recursion-related
stack management question for transparency peeling entirely.
* src/OptiXShaders.cu 1.172 (changed +11 -2)
 2019-07-22ryanmcgreevyAdded check to make sure if vmd_cuda_calc_dens returns an error that we don't try to init_new_volume or write map to file with bad VolumetricData
* src/TclMDFF.C 1.31 (changed +6 -4)
Moved write_file method for writing VolumetricData to file using MolFilePlugin from TclVoltool.C to Voltool.C since it is a general use method. Updated mdff_sim to use new write_file method instead of old volmap code, bringing it up to date with newer voltool commands.
* src/Voltool.h 1.10 (changed +4 -1)
* src/Voltool.C 1.9 (changed +41 -1)
* src/TclVoltool.C 1.7 (changed +1 -41)
* src/TclMDFF.C 1.32 (changed +17 -5)
 2019-07-18johnsRevised MDFF map simulation GPU call chain to correctly propagate
GPU runtime errors to ensure that CPU fallback is performed.
* src/CUDAMDFF.cu 1.80 (changed +26 -12)
 2019-07-10johnsAdded comments about the lack of recursion safety checks for shadow
feeler rays associating with lighting calculations. Since we don't
take this level of recursion into account in the renderer's internal
recursion tracking, we must ask OptiX to allow for one extra level of
recursion beyond the depth we're internally tracking to ensure that
there's enough stack space available.
* src/OptiXShaders.cu 1.171 (changed +8 -2)
Improved both shading code and comments about the enforcement of
the maximum ray recursion depth since the interaction between the
renderer and the OptiX >= 6.x runtime system's memory allocation
for the recursion stack critically depends on absolute agreement
between what the renderer asks for and what it does during a run.
The way we had tracked the recursion depth previously was really
only tracking recursion of the last surface hit for shading and
it wasn't taking into account shadow feeler rays or the like, whereas
the OptiX runtime has to accurately compute the stack space for
any recursive rtTrace() call.
The recursion tracking logic in the renderer used zero-based counting
and also had an incorrect comparison test so the original code had
allowed one more recursion than requested in practice, which while
harmless in older OptiX APIs that used an application-provided
recursion stack memory request sizes, is intolerable with the new
implementation since it computes the necessary stack size directly
from the maximum recursion depth. The revised code now asks OptiX
for a maximum recursion depth one greater than the surface hit depth
to allow lighting calculations to complete, and the internal max recursion
counter tracking has been corrected for its use of zero-based indexing.
Further comments should probably be added to the lighting code about
the necessity for this extra level of recursion beyond what the shader
is tracking internally.
* src/OptiXShaders.cu 1.170 (changed +4 -6)
* src/OptiXRenderer.C 1.357 (changed +14 -6)
 2019-06-29johnsModified the RTX accelerated ray tracing path to be extra conservative
about its maximum recursion depth and associated stack size requirements,
and added a VMDOPTIXMAXSTACKSIZE environment variable that causes VMD
to set the RTX runtime for maximum supported recursion depth and associated
stack size allocation.
* src/OptiXRenderer.C 1.356 (changed +19 -3)
 2019-06-28johnsCranked version
* configure 1.1475 (changed +1 -1)
Misc cleanup. Time to revisit whether it would be wise to pull the
bond data structures out of the atom class to permit them to be dynamically
resized for better average-case memory efficiency while still permitting
loading of unusual molecular structures or models with huge per-particle
bond counts.
* src/Atom.h 1.71 (changed +6 -8)
Revert default compilation to 12-bonds-per-atom maximums for now.
* src/Atom.h 1.73 (changed +2 -2)
Temporarily increase per-atom bond storage to 256 for a special user-requested
build. While doing this, I've gone ahead and added comments about
rearchitecting the code to eliminate this limitation with dynamic
allocation outside of MolAtom in the containing molecule class,
resulting in a likely-acceptable performance trade-off given the
propensity for an improved (reduced) average case memory use for bond
storage and traversal.
* src/Atom.h 1.72 (changed +13 -2)
Updated format specifier for 64-bit Python APIs that return longs.
* src/py_molecule.C 1.81 (changed +2 -2)
 2019-06-24johnsUse calloc() rather than malloc() so we don't have to make an additional
subsequent memset() call to zero out the coordinate arrays.
* src/Timestep.C 1.72 (changed +5 -4)
 2019-06-21johnsCranked version
* configure 1.1474 (changed +1 -1)
 2019-06-06johnsAdded further URL references about Python 3 module initialization
practices that improve portability on recent compilers, particularly those
that support C++11.
* src/py_atomsel.C 1.46 (changed +7 -1)
Changed the atom selection module initialization approach to address
problems that arise with Clang++ 8.x, which gets upset about
the use of PyObject_HEAD_INIT() and suggests adding braces etc.
This is discussed in significant detail as part of PEP 1323:
https://www.python.org/dev/peps/pep-3123/
The discussion of PEP 1323 suggests the use of PyVarObject_HEAD_INIT()
instead of PyObject_HEAD_INIT().
* src/py_atomsel.C 1.45 (changed +9 -3)
Eliminate duplicated extern "C" linkage type qualifier used to ensure that
name mangling is disabled.
* src/PythonTextInterp.C 1.74 (changed +5 -1)
Eliminated warnings from clang++ related to potentially uninitialized
local variable state when the error handling branches are taken, by
improving locality of variable scoping for PyObject pointers so they
don't cross the boundary between normal execution and error condition cases.
* src/py_atomsel.C 1.41 (changed +3 -4)
Further variable initialization changes to avoid compiler diagnostics
from Clang++
* src/py_atomsel.C 1.43 (changed +2 -2)
Misc cleanup
* src/py_atomsel.C 1.44 (changed +72 -71)
Perform allocation/initialization of the result Python list early enough
that it isn't undefined if subsequent errors occur, but we're already past
basic initialization phases for the method in question. This is required
to please Clang++ in its analysis of code initialization and exception handling.
* src/py_atomsel.C 1.42 (changed +6 -2)
vmd-first-python3
2019-06-05johnsConst correctness fix for Python 3.x
* src/VMDTkinterMenu.C 1.4 (changed +1 -1)
Elimiante trailing whitespace
* python/testdisplay.py 1.5 (changed +2 -2)
Many more const correctness fixes for Python 3.x APIs, particularly
as fallout from the use of PyUnicode_AsUTF8().
* src/py_graphics.C 1.35 (changed +3 -3)
* src/py_commands.h 1.49 (changed +2 -2)
* src/py_commands.C 1.22 (changed +4 -3)
* src/py_color.C 1.34 (changed +5 -5)
* src/py_atomsel.C 1.40 (changed +8 -8)
Merged Robin Betz's Python API changes to support both Python 2.x and 3.x,
changes to Python module initialization, and module naming.
* python/testMolecule.py 1.17 (changed +2 -2)
* python/startvmd.py 1.5 (changed +2 -2)
* python/hotkeys.py 1.2 (changed +2 -2)
* python/VMD.py 1.16 (changed +24 -41)
* python/Tkinter.py 1.5 (changed +78 -72)
* python/Molecule.py 1.31 (changed +12 -12)
* python/Material.py 1.5 (changed +2 -2)
* python/Label.py 1.5 (changed +7 -7)
* python/AtomSel.py 1.23 (changed +4 -4)
Merged Robin Betz's Python API changes:
All functions take keyword arguments.
Clearer keyword arguments for some functions, but backwards-compatible, too.
All functions and modules have docstrings.
More comprehensive error checking of invalid input.
Careful reference counting of all Python objects to avoid memory leaks.
Test cases for all Python modulesĀ + bug fixes I found while writing
test cases in python/test.
Tested builds with address sanitizer and caught several memory leaks.
Compiled and tested with Python 2.7 and 3.6.
Greatly improved atomsel attribute access: instead of atomsel().get("x")
you can just say atomsel().x, etc.
Renamed atomsel module to selection to clarify difference between it and
atomsel type.
Python module initialization functions appear only in one spot
(py_commands.h), making it easier to add new modules.
* src/py_vmd.C 1.16 (changed +88 -72)
* src/py_selection.C 1.1 (added +226 -0)
* src/py_commands.h 1.47 (changed +1 -9)
* src/py_commands.C 1.21 (changed +1 -7)
* src/py_atomsel.C 1.36 (changed +1623 -957)
* src/PythonTextInterp.C 1.72 (changed +121 -68)
Merged Robin Betz's changes for keyword-based Python parameter parsing,
improved doc strings, and Python 3.x initialization.
* configure 1.1473 (changed +1 -1)
Misc cleanup.
Merged Robin Betz's Python API changes to support both Python 2.x and 3.x,
changes to Python module initialization, and module naming hierarchy.
* src/py_molecule.C 1.80 (changed +1096 -570)
Modify the VMDApp pointer checks to unify with the other implementations.
* src/py_selection.C 1.2 (changed +19 -14)
Re-merged the Python atom selection interface to make use of
firstsel/lastsel to improve atom selection traversal performance.
The Python 3.x changes led to a loss of this optimization, so this
revision puts it back in place.
* src/py_atomsel.C 1.37 (changed +6 -6)
Removed the py_atomselection.C source file that contained the original
(Oct 2000) VMD python bindings for performing atom selections.
The original atomselection interface has been deprecated since 2007, so
at this point we can safely remove it altogether as part of modernization
for Python 3.x. The newer implementations have now been further
improved and this reduces the code we're maintaining going forward.
* src/py_atomselection.C 1.60 (removed +0 -942)
Rewrote the build_set_values() helper in the Python atom selection
implementation to eliminate redundant passing of atom counts and
selection flag arrays in favor of passing a const pointer to the
atom selection itself, which allows the internal loops within
build_set_values() to make use of atom selection accelerator loop bounds.
* src/py_atomsel.C 1.39 (changed +12 -18)
Set numvalues prior to the first error handling branch to prevent
compiler errors related to jumping past the initialization of numvalues,
even though we're not really using it within the error handling block.
* src/py_measure.C 1.11 (changed +3 -3)
Updated Python 2.x/3.x initialization and fixes to prevent C++ name mangling.
* src/py_vmd.C 1.17 (changed +24 -7)
* src/py_commands.h 1.48 (changed +8 -6)
* src/PythonTextInterp.C 1.73 (changed +3 -2)
We need to revise the build_set_values() helper before we can exploit
atom selection accelerators.
* src/py_atomsel.C 1.38 (changed +7 -2)
 2019-06-04johnsContinued cleanup of the Python bindings.
Merged the last parts of Robin Betz's Python 3 initialization changes
along with improved error handling and improved Python type checking for
atom selections in particular. A few of the changes have to be held back
via conditional compilation until the matching changes have been completed,
e.g., in the atom selection code.
* src/py_commands.h 1.46 (changed +28 -2)
* src/py_commands.C 1.20 (changed +171 -90)
 2019-05-31johnsMisc cleanup and improvements.
Merged Robin Betz's changes for keyword-based Python parameter parsing,
improved doc strings, and Python 3.x initialization.
* src/py_trans.C 1.24 (changed +432 -187)
* src/py_topo.C 1.10 (changed +841 -345)
* src/py_molrep.C 1.32 (changed +493 -245)
* src/py_graphics.C 1.33 (changed +447 -243)
* src/py_color.C 1.33 (changed +377 -197)
Re-eliminated duplicated registration of the _sphere method accidentally
reintroduced when merging in Robin Betz's changes which were based on
an older version of the code. Eliminated the "graphics_" prefix in favor
of just "py_" leading to shorter function names and improved code
readability.
* src/py_graphics.C 1.34 (changed +16 -23)
Updated to latest colvars source with the STL algorithm fix
permanently implemented.
* src/colvars_version.h 1.12 (changed +1 -1)
* src/colvarcomp_protein.C 1.11 (changed +2 -1)
* src/colvarcomp.C 1.16 (changed +3 -1)
 2019-05-30johnsConsistency among Python module init routines
* src/py_axes.C 1.21 (changed +4 -5)
Merged Robin Betz's changes for keyword-based Python parameter parsing,
improved doc strings, and Python 3.x initialization.
* src/py_render.C 1.23 (changed +52 -13)
* src/py_mouse.C 1.14 (changed +53 -9)
* src/py_axes.C 1.20 (changed +57 -21)
Merged Robin Betz's changes for keyword-based Python parameter parsing,
improved doc strings, and Python 3.x initialization.
Continued cleanup.
* src/py_menu.C 1.19 (changed +98 -35)
Misc cleanup and comment improvements
* src/py_material.C 1.36 (changed +20 -15)
Misc cleanup and improvements.
Merged Robin Betz's changes for keyword-based Python parameter parsing,
improved doc strings, and Python 3.x initialization.
* src/py_numeric.C 1.27 (changed +133 -62)
* src/py_measure.C 1.10 (changed +102 -50)
* src/py_material.C 1.37 (changed +194 -88)
* src/py_label.C 1.31 (changed +390 -208)
* src/py_imd.C 1.29 (changed +119 -56)
* src/py_animate.C 1.30 (changed +122 -71)
Misc cleanup and improvements.
Merged Robin Betz's changes for keyword-based Python parameter parsing,
improved doc strings, and Python 3.x initialization.
A noteworthy deficiency in our Python interface parsing implementations
arises in cases (as in py_display) when we need to match parsed keywords
against a long list of potential candidates, triggering the correct
assignments, type conversions, and subsequent VMD actions to be taken.
At present, the parsing code performs what boils down to a variant of
linear search through the series of candidate keywords, either by looping
and/or branching with string compares. This makes the code ugly and
slower than it should be. We should instead create persistent hash tables
(that live for the life of the Python module, interpreter, or application)
that contain all of the keywords, and associate them with enumerations or
function pointers to directly trigger the right actions. That would
eliminate the linear search behavior (both variants), and if properly
generalized, this pattern could be used in many other parts of the VMD
Tcl/Python bindings where we have to parse keywords from large lists of
candidates.
* src/py_display.C 1.42 (changed +279 -122)
Renamed keyword arguments parameter from "keywds" to "kwargs" for clarity
and consistency with the rest of the python bindings that do keyword handling.
* src/py_material.C 1.35 (changed +12 -12)
Renamed registered Python method fctns, adding py_ prefix for clarity
* src/py_trans.C 1.23 (changed +33 -33)
* src/py_topo.C 1.9 (changed +33 -33)
* src/py_numeric.C 1.26 (changed +8 -8)
* src/py_molrep.C 1.31 (changed +43 -43)
* src/py_molecule.C 1.79 (changed +74 -69)
* src/py_measure.C 1.9 (changed +7 -7)
* src/py_material.C 1.34 (changed +15 -15)
* src/py_label.C 1.30 (changed +19 -21)
* src/py_graphics.C 1.32 (changed +31 -32)
* src/py_display.C 1.41 (changed +15 -15)
* src/py_axes.C 1.19 (changed +5 -5)
* src/py_atomsel.C 1.35 (changed +17 -17)
* src/py_atomselection.C 1.59 (changed +23 -23)
Revised all of the VMD Python initialization routines to match the
function signature needed for tabulated module initialization per
Robin Betz's patch to support Python 3.x.
* src/py_trans.C 1.22 (changed +4 -3)
* src/py_topo.C 1.8 (changed +4 -3)
* src/py_render.C 1.22 (changed +4 -3)
* src/py_numeric.C 1.25 (changed +5 -4)
* src/py_mouse.C 1.13 (changed +2 -1)
* src/py_molrep.C 1.30 (changed +4 -3)
* src/py_molecule.C 1.78 (changed +4 -3)
* src/py_menu.C 1.18 (changed +3 -2)
* src/py_measure.C 1.8 (changed +4 -3)
* src/py_material.C 1.33 (changed +4 -3)
* src/py_label.C 1.29 (changed +3 -2)
* src/py_imd.C 1.28 (changed +4 -3)
* src/py_graphics.C 1.31 (changed +4 -3)
* src/py_display.C 1.40 (changed +5 -2)
* src/py_commands.h 1.45 (changed +21 -20)
* src/py_color.C 1.32 (changed +4 -3)
* src/py_axes.C 1.18 (changed +8 -2)
* src/py_atomsel.C 1.34 (changed +7 -7)
* src/py_animate.C 1.29 (changed +4 -3)
* src/PythonTextInterp.C 1.71 (changed +5 -2)
* src/py_atomselection.C 1.58 (changed +4 -3)
 2019-05-29johnsAdded safety checks for VMDApp pointers
* src/py_topo.C 1.6 (changed +54 -18)
* src/py_molecule.C 1.77 (changed +147 -34)
* src/py_atomsel.C 1.33 (changed +24 -6)
* src/py_atomselection.C 1.57 (changed +62 -14)
Added safety checks for VMDApp pointers.
* src/py_trans.C 1.21 (changed +66 -17)
* src/py_numeric.C 1.24 (changed +18 -4)
* src/py_molrep.C 1.29 (changed +91 -21)
* src/py_material.C 1.31 (changed +34 -8)
* src/py_label.C 1.28 (changed +35 -9)
* src/py_imd.C 1.23 (changed +37 -9)
* src/py_graphics.C 1.30 (changed +14 -4)
* src/py_display.C 1.39 (changed +31 -8)
Applied several doc string and src comment improvements from Robin Betz.
* src/py_measure.C 1.7 (changed +87 -25)
Const correctness improvements for modern Python APIs.
* src/py_trans.C 1.20 (changed +35 -35)
* src/py_topo.C 1.4 (changed +30 -17)
* src/py_render.C 1.21 (changed +3 -3)
* src/py_numeric.C 1.23 (changed +10 -12)
* src/py_mouse.C 1.12 (changed +2 -2)
* src/py_molrep.C 1.28 (changed +72 -76)
* src/py_molecule.C 1.76 (changed +90 -103)
* src/py_material.C 1.30 (changed +43 -43)
* src/py_label.C 1.27 (changed +31 -31)
* src/py_imd.C 1.27 (changed +2 -2)
* src/py_imd.C 1.22 (changed +15 -22)
* src/py_graphics.C 1.29 (changed +28 -40)
* src/py_display.C 1.38 (changed +12 -12)
* src/py_commands.C 1.19 (changed +9 -9)
* src/py_color.C 1.31 (changed +2 -2)
* src/py_atomsel.C 1.32 (changed +62 -72)
* src/py_animate.C 1.28 (changed +2 -2)
* src/py_atomselection.C 1.56 (changed +30 -34)
Eliminated tabs in the source and misc other cleanup.
* src/py_topo.C 1.5 (changed +597 -489)
Eliminated unnecessary calls to PyArg_ParseTuple() for Python methods
that don't need to accept any arguments, and changed their registration
to METH_NOARGS.
* src/py_material.C 1.32 (changed +2 -5)
* src/py_imd.C 1.25 (changed +5 -18)
Misc cleanup
* src/py_topo.C 1.7 (changed +2 -2)
Renamed registered Python method fctns, adding py_ prefix for clarity
* src/py_imd.C 1.24 (changed +17 -18)
Revised Python doc strings per Robin Betz's suggestions.
* src/py_imd.C 1.26 (changed +47 -24)
 2019-05-28johnsAdded missing revision control header
* src/py_measure.C 1.4 (changed +20 -0)
Added new/improved Python doc strings from Robin Betz
* src/py_render.C 1.20 (changed +21 -8)
Added safety checks for VMDApp pointers
Renamed registered Python method fctns, adding py_ prefix for clarity
* src/py_menu.C 1.16 (changed +24 -8)
Added safety checks for VMDApp pointers.
* src/py_color.C 1.26 (changed +41 -9)
Added safety checks for VMDApp pointers.
Added new/improved Python doc strings from Robin Betz
* src/py_mouse.C 1.11 (changed +12 -4)
Added safety checks for VMDApp pointers.
Const correctness improvements for modern Python APIs.
Added new/improved Python doc strings from Robin Betz.
* src/py_vmd.C 1.15 (changed +40 -12)
Added safety checks for VMDApp pointers.
Eliminated unnecessary calls to PyArg_ParseTuple() for Python methods
that don't need to accept any arguments, and changed their registration
to METH_NOARGS.
* src/py_color.C 1.28 (changed +20 -31)
Began applying Robin Betz's Python doc string improvements and
improved error checking.
* src/py_animate.C 1.26 (changed +38 -14)
Began de-tabbing src code
* src/py_measure.C 1.5 (changed +93 -80)
Const correctness improvements for modern Python APIs.
* src/py_menu.C 1.15 (changed +10 -10)
* src/py_color.C 1.29 (changed +16 -20)
Const correctness improvements for modern Python APIs.
Improved Python doc strings from Robin Betz.
* src/py_animate.C 1.27 (changed +22 -6)
Misc cleanup
* src/py_color.C 1.30 (changed +4 -5)
More de-tabbing
* src/py_measure.C 1.6 (changed +46 -47)
Renamed registered Python method fctns, adding py_ prefix for clarity
* src/py_color.C 1.27 (changed +30 -27)
Revised Python doc strings per Robin Betz's suggestions.
* src/py_menu.C 1.17 (changed +34 -8)
 2019-05-24johnsAdded VMDApp pointer safety checks.
* src/py_axes.C 1.17 (changed +8 -2)
Added safety checks for VMDApp pointers, per Robin Betz's patch.
Const correctness improvements for modern Python APIs.
* src/py_animate.C 1.24 (changed +70 -28)
Applied Robin Betz's patch to eliminate stray cr/lf pairs from the end
of atom selection macros using strcspn().
* src/vmd.C 1.105 (changed +5 -1)
Applied part of Robin Betz's patch adding new wrapper functions for
Python/C++ intrinsic type conversions that abstract key API differences
between Python 2.x and Python 3.x
* src/py_commands.C 1.18 (changed +62 -1)
Applied part of Robin Betz's patch adding new wrapper functions for
Python/C++ intrinsic type conversions that abstract key API differences
between Python 2.x and Python 3.x.
* src/py_commands.h 1.44 (changed +11 -1)
* src/py_commands.C 1.17 (changed +109 -1)
Const correctness for doc strings. Revised doc strings per Robin Betz's
suggestions.
* src/py_animate.C 1.23 (changed +15 -15)
Eliminated ancient const correctness workarounds for old versions of Python
* src/py_topo.C 1.3 (changed +16 -16)
* src/py_render.C 1.18 (changed +2 -4)
* src/py_display.C 1.37 (changed +12 -16)
* src/py_axes.C 1.16 (changed +11 -11)
Eliminated unnecessary calls to PyArg_ParseTuple() for Python methods that don't
need to accept any arguments, and changed their registration to METH_NOARGS.
* src/py_animate.C 1.25 (changed +10 -40)
Modernized all of the Python bindings. Since the Python APIs have been
const-correct for quite a few years now, there's no longer a reason to
hold onto old typecasts that were only needed by very old Python revs.
* src/py_trans.C 1.19 (changed +17 -17)
* src/py_topo.C 1.2 (changed +16 -16)
* src/py_render.C 1.17 (changed +3 -3)
* src/py_mouse.C 1.10 (changed +2 -2)
* src/py_molrep.C 1.27 (changed +22 -22)
* src/py_molecule.C 1.75 (changed +38 -38)
* src/py_menu.C 1.14 (changed +7 -7)
* src/py_measure.C 1.3 (changed +3 -3)
* src/py_material.C 1.29 (changed +8 -8)
* src/py_label.C 1.26 (changed +9 -9)
* src/py_imd.C 1.21 (changed +17 -17)
* src/py_graphics.C 1.28 (changed +17 -17)
* src/py_display.C 1.36 (changed +8 -8)
* src/py_color.C 1.25 (changed +14 -14)
* src/py_axes.C 1.15 (changed +3 -3)
* src/py_animate.C 1.21 (changed +15 -15)
* src/py_atomselection.C 1.55 (changed +14 -14)
Rename method fctns for clarity, adding py_ prefix to functions we're
registering.
* src/py_render.C 1.19 (changed +5 -7)
Renamed registered Python method fctns, adding py_ prefix for clarity
* src/py_atomsel.C 1.31 (changed +15 -16)
* src/py_animate.C 1.22 (changed +29 -29)
Rewrote VMD Python bindings to use the standard PyCFunction function pointer
typedef rather than our own vmdPyMethod function pointer typedef.
Python itself now provides what we need, so there's no longer any reason
to maintain our own type. The function pointer typedef originally made it
easier for us to use static file scope linkage to avoid namespace collisions.
Since the Python provided typedef is identical to ours, there should be no
impact from this change other than improved standardization/style.
* src/py_trans.C 1.18 (changed +17 -17)
* src/py_render.C 1.16 (changed +2 -2)
* src/py_mouse.C 1.9 (changed +1 -1)
* src/py_molrep.C 1.26 (changed +20 -20)
* src/py_molecule.C 1.74 (changed +22 -22)
* src/py_menu.C 1.13 (changed +4 -4)
* src/py_material.C 1.28 (changed +7 -7)
* src/py_label.C 1.25 (changed +9 -9)
* src/py_imd.C 1.20 (changed +5 -5)
* src/py_graphics.C 1.27 (changed +11 -11)
* src/py_display.C 1.35 (changed +7 -7)
* src/py_commands.h 1.43 (changed +1 -9)
* src/py_color.C 1.24 (changed +13 -13)
* src/py_axes.C 1.14 (changed +3 -3)
* src/py_atomsel.C 1.30 (changed +2 -2)
* src/py_animate.C 1.20 (changed +15 -15)
* src/PythonTextInterp.C 1.70 (changed +3 -3)
* src/py_atomselection.C 1.54 (changed +13 -13)
vmd-last-python2
2019-05-22johnsAdded API to query menu index from its string name, needed for Python 3 APIs
* src/VMDApp.h 1.252 (changed +3 -2)
* src/VMDApp.C 1.562 (changed +8 -2)
Added access to the NVML CPU affinity mask setting routine given a
specific caller-supplied GPU index. It is noted that the NVML docs
currently state that the back-end implementation is limited to 64 CPUs,
so I have contacted NVIDIA engineering to ask about this vis-a-vis
systems like the DGX-2 and the ORNL Summit compute nodes.
* src/CUDAWrapNVML.h 1.2 (changed +7 -0)
* src/CUDAWrapNVML.cu 1.2 (changed +25 -0)
Added missing include of the STL algorithm header
* src/colvarcomp_protein.C 1.10 (changed +1 -0)
* src/colvarcomp.C 1.15 (changed +1 -1)
Added the colvars dashboard plugin to the extension menus
* scripts/vmd/loadplugins.tcl 1.54 (changed +2 -1)
Comment out hooks for as-yet-unimplemented features in the video streaming
client implementation.
* src/OptiXRenderer.C 1.355 (changed +4 -4)
Corrected internal debug reporting of P2P GPU link states/features.
* src/CUDAUtil.cu 1.51 (changed +5 -5)
Corrected plugin list ordering
* scripts/vmd/loadplugins.tcl 1.55 (changed +2 -2)
Cranked version
* configure 1.1472 (changed +1 -1)
Eliminated unused resname string.
* src/Stride.C 1.43 (changed +2 -2)
Eliminated unused variables from the video streaming interactive RT client.
* src/OptiXRenderer.C 1.354 (changed +2 -6)
Ensure we get all of the fctn pointers we need for NVML
* src/CUDAWrapNVML.cu 1.3 (changed +2 -1)
Misc cleanup to eliminate compiler warnings about unreachable code
due to return statements in each of several different OS/platform-specific
ifdef blocks.
* src/vmdfsinfo.c 1.2 (changed +9 -10)
Protect new GPU device query APIs and P2P GPU topology routines with
conditional compilation.
* src/CUDAAccel.C 1.65 (changed +4 -2)
Pulled in Robin Betz's change to more gracefully handle mismatched
atom counts in the topolgy vs. the coordinate file buffers. Needs testing.
* src/VMDApp.C 1.563 (changed +15 -1)
* src/CoorPluginData.h 1.19 (changed +6 -1)
Updated colvars docs
* doc/ug_colvars.tex 1.18 (changed +217 -58)
* doc/ug_colvars.bib 1.6 (changed +11 -0)
Updated colvars to the latest git trunk.
* src/colvarvalue.h 1.10 (changed +9 -9)
* src/colvarvalue.C 1.11 (changed +4 -4)
* src/colvartypes.h 1.10 (changed +39 -36)
* src/colvartypes.C 1.9 (changed +50 -36)
* src/colvarscript.h 1.11 (changed +3 -2)
* src/colvarscript.C 1.22 (changed +49 -0)
* src/colvars_version.h 1.11 (changed +1 -1)
* src/colvars_files.pl 1.3 (changed +1 -0)
* src/colvarproxy_vmd_version.h 1.9 (changed +1 -1)
* src/colvarproxy_vmd.h 1.14 (changed +0 -2)
* src/colvarproxy_vmd.C 1.18 (changed +10 -9)
* src/colvarproxy.h 1.18 (changed +21 -2)
* src/colvarproxy.C 1.8 (changed +9 -6)
* src/colvarparse.h 1.10 (changed +120 -53)
* src/colvarparse.C 1.13 (changed +228 -195)
* src/colvarmodule.h 1.27 (changed +217 -68)
* src/colvarmodule.C 1.25 (changed +213 -16)
* src/colvargrid.h 1.18 (changed +37 -37)
* src/colvargrid.C 1.9 (changed +1 -1)
* src/colvardeps.h 1.10 (changed +48 -16)
* src/colvardeps.C 1.14 (changed +36 -310)
* src/colvarcomp_rotations.C 1.10 (changed +76 -33)
* src/colvarcomp_protein.C 1.9 (changed +89 -10)
* src/colvarcomp_distances.C 1.19 (changed +75 -19)
* src/colvarcomp_coordnums.C 1.11 (changed +6 -12)
* src/colvarcomp_angles.C 1.10 (changed +28 -33)
* src/colvarcomp.h 1.13 (changed +63 -15)
* src/colvarcomp.C 1.14 (changed +164 -7)
* src/colvarbias_restraint.h 1.10 (changed +2 -3)
* src/colvarbias_restraint.C 1.16 (changed +60 -66)
* src/colvarbias_meta.h 1.11 (changed +17 -15)
* src/colvarbias_meta.C 1.17 (changed +17 -15)
* src/colvarbias_histogram.h 1.5 (changed +1 -1)
* src/colvarbias_abf.h 1.8 (changed +25 -9)
* src/colvarbias_abf.C 1.20 (changed +7 -7)
* src/colvarbias.h 1.13 (changed +5 -2)
* src/colvarbias.C 1.17 (changed +80 -9)
* src/colvaratoms.h 1.12 (changed +41 -11)
* src/colvaratoms.C 1.20 (changed +108 -35)
* src/colvar_UIestimator.h 1.6 (changed +47 -46)
* src/colvar.h 1.15 (changed +22 -13)
* src/colvar.C 1.26 (changed +282 -153)
Updated device enumeration comments to prepare for incorporation of
user-specified GPU device masks along with P2P PCIe/NVLink topology info.
* src/CUDAAccel.C 1.64 (changed +5 -2)
Updated for Python 3.x APIs.
* src/VMDTkinterMenu.C 1.3 (changed +4 -0)
 2019-05-16johnsAdded CUDAWrapNVML to the build.
* configure 1.1471 (changed +1 -0)
Added code (John's BSD-licensed src) to access the NVML shared library
at runtime using a simple set of wrapper functions that ensure safety.
The NVML shared library provides access to important host platform GPU
hardware details such as the best CPU affinity mask associated with each
GPU, taking into account the NUMA node, PCIe topology, and NVLink
topology that exist on the system.
* src/CUDAWrapNVML.h 1.1 (added +137 -0)
* src/CUDAWrapNVML.cu 1.1 (added +316 -0)
Added commentary about where host-GPU management thread affinity
assignment should be done.
* src/CUDAUtil.cu 1.50 (changed +31 -1)
Added first phase of NVML open/query to make use of CPU-GPU affinity mask
information at the top level.
* src/CUDAAccel.h 1.27 (changed +14 -10)
* src/CUDAAccel.C 1.62 (changed +23 -2)
Updated src comments and eliminated a redundant safety check that's now
handled much earlier in the GPU initialization code.
* src/CUDAAccel.C 1.63 (changed +5 -5)
 2019-05-14johnsCorrected a few bits of logic in the console output deduplication code for
GPU device enumeration during startup.
* src/CUDAAccel.C 1.61 (changed +8 -5)
Corrected logic for runtime determination of DSSP / XDSSP location.
* src/Stride.C 1.42 (changed +9 -10)
Imported thread affinity reporting/analysis code from ongoing work on Summit
to make VMD play nice with batch systems like IBM's 'jsrun' tool that
lock-down CPU thread affinity prior to launching the child process.
The new VMD CPU affinity code tries to detect the situation where the
OS or batch system are externally enforcing CPU-thread affinity and
"do the right thing" during startup. This implies that we must accept
the external CPU thread affinity assignment and put all of the brains for
CPU-GPU thread/context affinity in the CUDA startup code since we won't
be able to influence which CPU core or socket the host threads run on.
* src/VMDApp.C 1.561 (changed +23 -27)
 2019-05-03johnsTrack number of physical GPU devices as well as the number that are
available, for use in detailed formatting of console status output.
Draft implementation of condensed GPU console output inspired by the
approach taken by Solaris 'dmesg' to reduce repetitive syslog output.
* src/CUDAAccel.h 1.26 (changed +4 -3)
* src/CUDAAccel.C 1.60 (changed +119 -34)
 2019-05-02johnsAdded further comments for GPU P2P topology analysis and reporting routines
in preparation for adding abstractions to fully support the combination of
user-defined GPU device selection masks in combination with P2P kernels that
need to be able to access P2P topology info to enable and exploit P2P transfers,
direct GPU P2P memory access, etc.
* src/CUDAAccel.C 1.58 (changed +14 -1)
Revised description of the CUDAAccel class to make it clearer to the
uninitiated why it needs to exist and why all of the CUDA code in VMD
needs to use the various device query routines it provides rather than
making direct use of the underlying CUDA runtime or driver APIs themselves.
* src/CUDAAccel.h 1.25 (changed +12 -3)
* src/CUDAAccel.C 1.59 (changed +12 -3)
Revised the VMD CUDA startup code to enable analysis of the PCIe/NVLink
peer-to-peer communication topology, along with determination and reporting
of the total number of GPU P2P links and islands.
* src/CUDAUtil.cu 1.49 (changed +43 -8)
* src/CUDAKernels.h 1.60 (changed +2 -1)
* src/CUDAAccel.C 1.57 (changed +15 -7)
 2019-05-01ryanmcgreevyUpdated documentation for voltool to include new mask, write, hist, and info commands.
* doc/ug_text_ui.tex 1.238 (changed +19 -2)
 2019-05-01johnsAdded VMD info message when kernel-bypass I/O is disabled when operating
on files located on a remote filesystem.
* src/VMDApp.C 1.560 (changed +6 -1)
Added thin cross-platform wrappers to help VMD determine whether a given
file is located on a local or remote filesystem, to help determine whether
or not to engage kernel-bypass direct-I/O when reading gigabytes or terabytes
of trajectory data. This is particularly helpful on very large
RAID-0 SSD-cached filesystems such as the NFS cache mechanism on the
NVIDIA DGX-2.
* src/vmdfsinfo.h 1.1 (added +58 -0)
* src/vmdfsinfo.c 1.1 (added +169 -0)
Added vmdfsinfo sources to the build.
* configure 1.1470 (changed +2 -1)
Determine whether a given file on a local or remote filesystem.
We don't engage kernel-bypass direct-I/O when reading from
remote filesystems, as it turns out that filesystem caching
mechanisms like the Linux 'cachefilesd' daemon interpret
Unix direct-I/O (e.g. O_DIRECT) calls to be NFS-cache-bypassing
I/O operations, which is not what we want in that particular case.
We want local NFS caches to be utilized rather than hitting the
network, so in the case of remote filesystems we now revert to
normal I/O. We only engage kernel-bypass I/O when the file of
interest resides on a local filesystem where there are no
surprising side effects from direct-I/O. This is particularly
beneficial on the NVIDIA DGX-2 which incorporates a large 30+TB
RAID-0 NFS cache, as an example.
The implementation modifies the behavior the block-sized memory alignment
queries to cause the desired behavior on the side of the molfile plugins.
If we don't query the page alignment size, the associated molfile plugin
will have to assume that we can't support kernel-bypassing
block-based direct-I/O, and will revert to using normal I/O.
* src/VMDApp.C 1.559 (changed +23 -2)
Doxygenized filesystem locality APIs
* src/vmdfsinfo.h 1.2 (changed +11 -11)
Revised internal APIs for query of CUDA peer-to-peer NVLink connectivity
and GPU peer-to-peer link capabilities (performance, native atomic support, etc).
* src/CUDAUtil.cu 1.48 (changed +36 -24)
* src/CUDAKernels.h 1.59 (changed +8 -2)
* src/CUDAAccel.C 1.56 (changed +18 -2)
 2019-04-26johnsAdded comment about driver version check calls and their startup perf cost
* src/CUDAUtil.cu 1.46 (changed +2 -1)
Benchmarked VMD startup time on the NVIDIA DGX-2 and annotated the source
code with comments about the costs associated with each startup phase.
The overall CUDA-associated startup time is roughly 9.7 seconds on
the DGX-2 w/ 16 GPUs.
* src/CUDAUtil.cu 1.47 (changed +5 -1)
* src/CUDAAccel.C 1.55 (changed +15 -1)
Replace a missing conditional macro definition test needed to maintain
support for OptiX 4.x on ORNL Titan and NCSA Blue Waters, for the time being.
* src/OptiXRenderer.h 1.120 (changed +18 -1)
 2019-04-25johnsBegan adaptation of the VMD startup code to add a bunch of new hardware
queries about GPU-Host memory coherency, page table access, and wrote
an early draft query for determining the system-wide NVLink connectivity
and observed topological features such as the number of connected NVLink
islands, etc.
* src/CUDAUtil.cu 1.45 (changed +116 -6)
* src/CUDAKernels.h 1.58 (changed +16 -8)
* src/CUDAAccel.h 1.24 (changed +5 -1)
* src/CUDAAccel.C 1.54 (changed +51 -4)
 2019-04-14johnsSignificantly revised the CUDA startup device query code to eliminate
ancient #ifdef blocks for CUDA versions 4.0 and below. Added device
properties query for single-precision to double-precision perf ratio,
which can be useful to know for selection of particular arithmetic
strategies at runtime.
* src/CUDAUtil.cu 1.44 (changed +12 -35)
* src/CUDAKernels.h 1.57 (changed +3 -2)
* src/CUDAAccel.h 1.23 (changed +3 -1)
* src/CUDAAccel.C 1.53 (changed +21 -8)
 2019-04-12johnsAdded support for computing secondary structure using DSSP, either the
old original code or the newer descendant "xdssp" tools produced by
different authors.
* src/Stride.h 1.14 (changed +2 -1)
* src/Stride.C 1.41 (changed +179 -1)
* src/DrawMolecule.C 1.146 (changed +15 -1)
 2019-03-29ryanmcgreevyChanged the histogram code to use longs to avoid integer overflow issues on large density maps
* src/Voltool.h 1.9 (changed +3 -3)
* src/Voltool.C 1.8 (changed +5 -5)
* src/TclVoltool.C 1.6 (changed +2 -2)
 2019-03-28johnsGeneralized the naming and description of the secondary structure input
generator for Stride since the same approach also works for DSSP.
* src/Stride.h 1.13 (changed +5 -1)
* src/Stride.C 1.40 (changed +8 -7)
Misc cleanup of some ancient and hideous code in the STRIDE interface,
so that it doesn't provide a poor example for implementing DSSP and other
interfaces.
* src/Stride.C 1.39 (changed +44 -39)
OptiX 6.x build by default
* configure 1.1469 (changed +3 -3)
raytracinggems2019
2019-03-12johnsRemoved the pedagogical variants of the dome master camera projection implementations
that were really intended just for the Ray Tracing Gems book chapter. They were
included in VMD only to ensure that there were no significant problems in the
decomposed and simplified implementations that were included inline within the
book chapter. Now that the book has been finalized, there is no longer a
reason to maintain these alternative pedagogical implementations within the
VMD source code itself, and we can revert to the fully inlined and more mathematically
streamlined implementations that have been in use for the CADENS project up to now.
* src/OptiXShaders.cu 1.168 (changed +16 -229)
Replaced the original dome master implementation that was used for the
CADENS dome show renderings with the more optimal formulation that
resulted from the more thorough math checking that was done for the
Ray Tracing Gems book chapter. This version uses the same variable name
nomenclature found in the RTG chapter, and it eliminates a few normalization
operations that are avoidable due to the details of the underlying projection
arithmetic. For the final CADENS production renderings it was more important
to ensure 100% consistency of the image content despite multiple years of
development time and revisions to VMD intervening between the earlist
test shots and final rendering. Now that the "Birth of Planet Earth" dome
masters are finalized, there's no longer a reason to maintain the verbatim
original code. Any future CADENS dome renderings will now be done with the
latest RTG-descendant code instead.
* src/OptiXShaders.cu 1.169 (changed +1 -128)
Revised comments pertaining to global context-wide RTX initialization for
final OptiX 6.0.0 API behavior.
* src/OptiXRenderer.C 1.352 (changed +9 -7)
The rtContext[GS]etStackSize() APIs are not supported when
using the RTX execution strategy. Although they don't (yet)
return errors in that case, we protect against calling them
except when running in a non-RTX mode.
Presumably these APIs will be deprecated in future OptiX releases.
* src/OptiXRenderer.C 1.351 (changed +6 -1)
Updated and added details after re-testing the RTX-specific hardware
triangle instance list destruction code path with OptiX 6.0 and
the 418.30 drivers.
* src/OptiXRenderer.C 1.350 (changed +7 -3)
Updated the Ray Tracing Gems book references in the OptiX code to point
to the Apress web site, and add the final chapter and page numbers.
* src/OptiXShaders.h 1.39 (changed +5 -3)
* src/OptiXShaders.cu 1.167 (changed +19 -1)
* src/OptiXRenderer.h 1.119 (changed +5 -3)
* src/OptiXRenderer.C 1.353 (changed +5 -3)
* src/OptiXDisplayDevice.h 1.26 (changed +5 -3)
* src/OptiXDisplayDevice.C 1.77 (changed +5 -3)
Updated the VMD OptiX renderer to make use of the new OptiX 6.0.0 APIs
required for runtime calculation of stack size required for a given
max ray tracing recursion depth. Revised the internal shader state
recursion depth and transmission ray depth counter variables
to use unsigned types so they are consistent with the new OptiX APIs
and new the context-wide recursion limit state. The change from
signed to unsigned types for the shader-internal counters comes with
slight complexity in handling of transmission ray surface crossing counting
since we can no longer blindly decrement the surface crossing counter
and compare using less than or equal to 1, since we can now have integer
wrarparound. Using the expression (new.transcnt = max(1, old.transcnt) - 1)
resolves the basic problem albeit with extra complexity. It may be desirable
to reformulate the transmission ray surface crossing implementation to count
up rather than down, which deviates from the original Tachyon CPU
implementation, but is probably the right thing to do in light of the
new OptiX 6.0 APIs favoring unsigned types for recursion counts and the like.
* src/OptiXShaders.cu 1.166 (changed +11 -10)
* src/OptiXRenderer.h 1.118 (changed +4 -1)
* src/OptiXRenderer.C 1.349 (changed +61 -52)
 2019-03-08johnsImported the more streamlined dome master camera version as provided
for the book chapter.
* src/OptiXShaders.cu 1.165 (changed +115 -2)
 2019-02-27ryanmcgreevyCreated new method for writing volumetric data to files using molfile plugin interface instead of the hacky code in Volmap. The method is now used by all the voltool commands when the output option is used. The write_file method parses the output file name to determine the extension and load the correct molfile plugin. However, currently only the dx plugin is capable of writing. As writing capability is added to other volumetric data molfile plugins, the existing voltool code should work correctly as is.
* src/Voltool.h 1.8 (changed +3 -3)
* src/Voltool.C 1.7 (changed +5 -4)
* src/TclVoltool.C 1.5 (changed +231 -27)
 2019-02-26johnsCranked version
* configure 1.1467 (changed +3 -3)
Make another set of OptiX 5.1.0 builds for people with old drivers.
* configure 1.1468 (changed +2 -2)
 2019-02-22johnsOptiX 6.0 has dropped support for the VCA remote device APIs, so they
are now only conditionally compiled into VMD based on the OptiX version number
in use.
* src/OptiXShaders.h 1.38 (changed +2 -2)
* src/OptiXRenderer.h 1.117 (changed +3 -3)
* src/OptiXRenderer.C 1.347 (changed +3 -3)
Updated all of the VMD OptiX API calls for the final OptiX 6.0.0 API.
* src/OptiXRenderer.C 1.348 (changed +33 -27)
Other commits are hidden...

* on non binary files only
Created by cvschangelogbuilder 2.3 (build 1.76)