Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Extreme efficiency enhancements #151

Draft
wants to merge 97 commits into
base: master
Choose a base branch
from

Commits on Jul 21, 2022

  1. Configuration menu
    Copy the full SHA
    f3e08e2 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    896f6f5 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    904fab1 View commit details
    Browse the repository at this point in the history

Commits on Aug 10, 2022

  1. Configuration menu
    Copy the full SHA
    31a559f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    4a15546 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2c0b799 View commit details
    Browse the repository at this point in the history

Commits on Aug 16, 2022

  1. Configuration menu
    Copy the full SHA
    e943784 View commit details
    Browse the repository at this point in the history

Commits on Aug 17, 2022

  1. Configuration menu
    Copy the full SHA
    2c8ec51 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    f4fb8a9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    44da93a View commit details
    Browse the repository at this point in the history

Commits on Aug 19, 2022

  1. Configuration menu
    Copy the full SHA
    415042c View commit details
    Browse the repository at this point in the history

Commits on Aug 22, 2022

  1. Configuration menu
    Copy the full SHA
    3a38beb View commit details
    Browse the repository at this point in the history

Commits on Sep 15, 2022

  1. Fix CBMC cell list bugs.

    rwsmith7531 committed Sep 15, 2022
    Configuration menu
    Copy the full SHA
    62b7e98 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    575b111 View commit details
    Browse the repository at this point in the history

Commits on Sep 19, 2022

  1. Configuration menu
    Copy the full SHA
    0955297 View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2022

  1. Fix CBMC dihedral sampling.

    Previously, the CBMC Fragment_Placement subroutine would sometimes
    choose a dihedral trial with trial overlap despite its weight being
    zero.  This was fixed by changing the "<=" operator to "<" and
    flagging cbmc_overlap if none of the trials are picked.
    rwsmith7531 committed Sep 21, 2022
    Configuration menu
    Copy the full SHA
    16445ae View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    a2a2dfc View commit details
    Browse the repository at this point in the history

Commits on Oct 18, 2022

  1. Configuration menu
    Copy the full SHA
    efd9d41 View commit details
    Browse the repository at this point in the history

Commits on Oct 21, 2022

  1. Configuration menu
    Copy the full SHA
    d03ee55 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e0ad108 View commit details
    Browse the repository at this point in the history

Commits on Dec 13, 2022

  1. Configuration menu
    Copy the full SHA
    15f50d4 View commit details
    Browse the repository at this point in the history

Commits on Jan 16, 2023

  1. Configuration menu
    Copy the full SHA
    5713224 View commit details
    Browse the repository at this point in the history

Commits on Jan 17, 2023

  1. Configuration menu
    Copy the full SHA
    6eabb4f View commit details
    Browse the repository at this point in the history

Commits on Jan 19, 2023

  1. Configuration menu
    Copy the full SHA
    a96cd3e View commit details
    Browse the repository at this point in the history

Commits on Feb 2, 2023

  1. Configuration menu
    Copy the full SHA
    650a294 View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2023

  1. Configuration menu
    Copy the full SHA
    26eca17 View commit details
    Browse the repository at this point in the history

Commits on Feb 9, 2023

  1. Enable custom tolerance list for atompair rminsq table creation.

    This results in creation of rminsq file for each tolerance.
    Also output information regarding maximum individual widom_var for
    insertions that would have been excluded if the rminsq table had
    been used.
    rwsmith7531 committed Feb 9, 2023
    Configuration menu
    Copy the full SHA
    a58cf8d View commit details
    Browse the repository at this point in the history
  2. Merge branch 'read_xtc' into atompair_rmin_xtc

    Combine xtc reading capability with atompair rminsq table feature.
    rwsmith7531 committed Feb 9, 2023
    Configuration menu
    Copy the full SHA
    8c277a2 View commit details
    Browse the repository at this point in the history

Commits on Feb 15, 2023

  1. Configuration menu
    Copy the full SHA
    2a55824 View commit details
    Browse the repository at this point in the history

Commits on Feb 20, 2023

  1. Configuration menu
    Copy the full SHA
    e17516b View commit details
    Browse the repository at this point in the history

Commits on Feb 21, 2023

  1. Configuration menu
    Copy the full SHA
    821da98 View commit details
    Browse the repository at this point in the history

Commits on Feb 23, 2023

  1. Configuration menu
    Copy the full SHA
    e9f7f62 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    3fbeffe View commit details
    Browse the repository at this point in the history

Commits on Feb 27, 2023

  1. Configuration menu
    Copy the full SHA
    228be17 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    1bbc456 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    17ccecb View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    9c63e2a View commit details
    Browse the repository at this point in the history

Commits on Mar 7, 2023

  1. Configuration menu
    Copy the full SHA
    a483438 View commit details
    Browse the repository at this point in the history

Commits on Mar 24, 2023

  1. Configuration menu
    Copy the full SHA
    be091d6 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    51c6188 View commit details
    Browse the repository at this point in the history

Commits on Mar 30, 2023

  1. Configuration menu
    Copy the full SHA
    c0435b7 View commit details
    Browse the repository at this point in the history
  2. Include previously missing division by zero for charge_cut energy cal…

    …culation and switch to intrinsic ERFC.
    
    These changes were made for the precomputed energy table creation.
    rwsmith7531 committed Mar 30, 2023
    Configuration menu
    Copy the full SHA
    20b077b View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    eec2510 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    6785e18 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    48ec01a View commit details
    Browse the repository at this point in the history
  6. Configuration menu
    Copy the full SHA
    e8db1df View commit details
    Browse the repository at this point in the history

Commits on Mar 31, 2023

  1. Configuration menu
    Copy the full SHA
    e279a3e View commit details
    Browse the repository at this point in the history

Commits on Apr 7, 2023

  1. Configuration menu
    Copy the full SHA
    9007cab View commit details
    Browse the repository at this point in the history

Commits on Apr 11, 2023

  1. Configuration menu
    Copy the full SHA
    e5b5b82 View commit details
    Browse the repository at this point in the history

Commits on Apr 13, 2023

  1. Configuration menu
    Copy the full SHA
    e2a3c6d View commit details
    Browse the repository at this point in the history

Commits on Apr 14, 2023

  1. Configuration menu
    Copy the full SHA
    e31bd0a View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2023

  1. Configuration menu
    Copy the full SHA
    abdd9eb View commit details
    Browse the repository at this point in the history

Commits on Apr 20, 2023

  1. Configuration menu
    Copy the full SHA
    bcf271a View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    5913915 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2023

  1. Configuration menu
    Copy the full SHA
    da038f1 View commit details
    Browse the repository at this point in the history

Commits on May 5, 2023

  1. First working version

    rwsmith7531 committed May 5, 2023
    Configuration menu
    Copy the full SHA
    68a5a97 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e1f576f View commit details
    Browse the repository at this point in the history

Commits on May 25, 2023

  1. Configuration menu
    Copy the full SHA
    4ef7722 View commit details
    Browse the repository at this point in the history

Commits on Jun 6, 2023

  1. Configuration menu
    Copy the full SHA
    afab71b View commit details
    Browse the repository at this point in the history
  2. Merge branch 'gathered_cell_list' into nonwidom_vectorization.

    This makes nonwidom_vectorization the most up-to-date branch even for Widom insertion vectorization.
    rwsmith7531 committed Jun 6, 2023
    Configuration menu
    Copy the full SHA
    7359aaf View commit details
    Browse the repository at this point in the history

Commits on Jul 4, 2023

  1. Configuration menu
    Copy the full SHA
    dd98c82 View commit details
    Browse the repository at this point in the history

Commits on Jul 31, 2023

  1. Configuration menu
    Copy the full SHA
    15851f3 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    e3d881b View commit details
    Browse the repository at this point in the history

Commits on Aug 1, 2023

  1. Configuration menu
    Copy the full SHA
    6df5a61 View commit details
    Browse the repository at this point in the history

Commits on Aug 4, 2023

  1. Fix bug preventing xyz and H files specified with new syntax from ope…

    …ning.
    
    Also improve log file output.
    rwsmith7531 committed Aug 4, 2023
    Configuration menu
    Copy the full SHA
    571c5f0 View commit details
    Browse the repository at this point in the history
  2. Make lammpstrjconvert.py not center the box by default. Add/update ex…

    …ample and tests.
    
    Add new Widom insertion & trajectory reader tests incorporating
    atom pair-specific overlap radii and xtc trajectory reading.
    rwsmith7531 committed Aug 4, 2023
    Configuration menu
    Copy the full SHA
    fb9e1f8 View commit details
    Browse the repository at this point in the history

Commits on Aug 9, 2023

  1. Update Makefiles to not require pkg-config.

    Also update Makefiles to have xtc support enabled
    unless the Makefile name includes noXTC or conda.
    Compilation with pgfortran still doesn't work but that has nothing
    to do with these changes, and the pgfortran Makefiles were still updated
    in case Cassandra is ever made compilable with pgfortran again.
    Makefile.conda was not updated at all so it doesn't enable XTC support.
    rwsmith7531 committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    d937b06 View commit details
    Browse the repository at this point in the history
  2. Update Widom examples to match the corresponding tests in the test su…

    …ite.
    
    Also move the `energy table 1000` line of the input file to the correct
    place for the diethylether test and example.
    rwsmith7531 committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    324d38f View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    1c05037 View commit details
    Browse the repository at this point in the history
  4. Include example input for adaptive and specific overlap radii and ene…

    …rgy_table usage in documentation.
    rwsmith7531 committed Aug 9, 2023
    Configuration menu
    Copy the full SHA
    75790c3 View commit details
    Browse the repository at this point in the history
  5. Configuration menu
    Copy the full SHA
    fb7dcd1 View commit details
    Browse the repository at this point in the history

Commits on Aug 11, 2023

  1. Configuration menu
    Copy the full SHA
    0a1233f View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    fc96649 View commit details
    Browse the repository at this point in the history

Commits on Aug 14, 2023

  1. Configuration menu
    Copy the full SHA
    652ca79 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    adbaaee View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    f7b8d93 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    98de8a4 View commit details
    Browse the repository at this point in the history

Commits on Aug 15, 2023

  1. Merge branch 'atompair_rmin_xtc' into nonwidom_vectorization

    This updates the Makefiles and improves the linking of the xtc reader libraries.
    It also adds more tests.
    rwsmith7531 committed Aug 15, 2023
    Configuration menu
    Copy the full SHA
    98c6e1e View commit details
    Browse the repository at this point in the history

Commits on Sep 12, 2023

  1. Add apparently working bitcell overlap detection and CBMC cell neighb…

    …or list.
    
    Members of gathered overlap cells and cell neighbor lists are now filtered by proximity.
    CBMC cell list option would now be more appropriately called a cell neighbor list method, since
    the possible neighbors for a cell are now gathered and filtered by proximity.  CBMC cells are now
    the same size as overlap cells; the gathering algorithm just searches more cells to capture all possible
    neighbors.  Trial insertion of first fragment in CBMC are now greatly vectorized.  CBMC dihedral trials are not yet,
    but applying vectorization and bitcell overlap detection to dihedral trials should be fairly straightforward.
    Dimension padding currently assumes vector size no greater than 256 bits (the size of AVX2 vector registers), and if
    we want Cassandra to support AVX-512, changes need to be made to accommodate that since it would violate the alignment
    assumptions made in some ifort compiler directives.  While intermolecular CBMC energy estimation is vectorized when used
    with CBMC cell neighbor lists, it can apparently sometimes still be slightly slower than directly computing the energy,
    most likely due to slower memory access for the very large, precomputed energy table.  I still left it as an option though because
    for more expensive force fields, it may be faster.  Some cheap WRITE statements used for debugging are still present in the code
    and should probably be removed to avoid excessive verbosity, especially to STDOUT.
    Repeating an old simulation (from before this commit) using the same seeds and simulation options will not give identical
    results even with a single thread due to the way CBMC insertion trial positions are calculated from the random numbers
    differing from how it used to be done; for example, using rranf() - 0.5 instead of 0.5 - rranf() as fractional COM coordinate.
    Restricted insertion trial coordinates are now generated within the inner volume the first time, rather than
    being generated anywhere in the box and re-generating them within the inner volume them if they're outside the inner volume, as
    was done previously, and this process is now vectorized.  Widom insertions will no longer be restricted ever, even if the inserted
    species is designated with restricted GCMC insertions. It's likely this was never a problem for anyone, but this fix should make sure
    it won't be a problem in the future.  If restricted Widom insertions are ever allowed in the future, additional changes will need
    to be made for it to be done properly.
    rwsmith7531 committed Sep 12, 2023
    Configuration menu
    Copy the full SHA
    c11e389 View commit details
    Browse the repository at this point in the history

Commits on Sep 21, 2023

  1. Add support for RB torsion dihedrals and convert other dihedral types…

    … to RB form where possible.
    
    All OPLS dihedrals are internally converted to RB torsions now because RB torsions are much faster to compute.
    CHARMM style dihedrals are converted to RB torsions when it is possible to do so (I don't think I've seen one that
    isn't possible to convert to RB but they might exist), and they are left as CHARMM style if it isn't possible to convert to RB format.
    All dihedrals formatted as RB torsions (whether explicitly input or internally converted) that are stacked on the same or reverse
    4-atom sequence as each other are collapsed into a single RB torsion by adding together the coefficients of the stacked RB torsions.
    RB torsions are implemented in the protein convention (based on phi) in Cassandra, like the other dihedral types are.
    This differs from how they are implemented in GROMACS, which uses the polymer convention (based on psi, which is phi - pi).
    To convert from one convention to the other (either direction), simply flip the sign of the coefficients of the
    even-powered terms of the series.
    
    I also commented out the code that reads parameters for AMBER-style dihedrals because Cassandra has no
    code to compute the energies of AMBER-style dihedrals and they aren't converted to another style either.
    Dihedral styles are now allowed to be specified in all-caps or all lowercase in the mcf files, to make things more user-friendly.
    I also renamed get_internal_coords.f90 to internal_coordinate_routines.f90 and made Internal_Coordinate_Routines a module, since
    the file previously just contained a collection of subroutines, one of which is named Get_Internal_Coords, not encompassed by a module.
    rwsmith7531 committed Sep 21, 2023
    Configuration menu
    Copy the full SHA
    058e6b9 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    0c7d121 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    355cf26 View commit details
    Browse the repository at this point in the history
  4. Configuration menu
    Copy the full SHA
    098477d View commit details
    Browse the repository at this point in the history

Commits on Oct 13, 2023

  1. Refactor fragment_placement, enabling bitcell overlap detection and m…

    …ore vectorization.
    
    Also designate several procedures as ELEMENTAL for ease of use and optimization.
    Add optional argument l_skip_dihed_vec to Compute_Molecule_Dihedral_Energy that specifies
    which dihedrals to skip computing energy for.
    Allow different species to use different CBMC kappa values.  Add way to specify minimum
    ideal_bitcell_length, which overrides the ideal_bitcell_length computed by the default method
    if it is greater than the computed ideal_bitcell_length, but not if it is smaller, since
    the computed value is the minimum value required for the algorithm to work properly.  The
    user-defined minimum is an option because it can be beneficial to lower the resolution of the
    bitcell grid so it occupies less memory and allows faster memory access and probably has a
    lower cache miss rate. This will result in the bitcell overlap method catching fewer overlaps
    (which will be caught by the cell list overlap detection instead if they are overlaps), but
    allowing the bitcells to be checked faster can be worth it (tested with min_ideal_bitcell_length = 0.2).
    New function Excess_Molecule_Intrafragment_Energy was added, and optional excess_flag_o and/or minimg_flag_o arguments
    were added to a few subroutines to cause them to instead compute the "excess" energy (energy minus what it would be if
    computed with the minimum image sum style as during fragment library generation) and minimum image energy
    (essentially forces the subroutine to act as if the sum style is minimum image, even if it isn't) so you only get
    the intramolecular parts you need for Widom insertions.
    Interfragment intramolecular energy is now optionally output by Build_Molecule as E_interfrag, though the logic in
    Fragment_Placement causes it to only do so during Widom insertions.  That should probably be changed if/when the new
    intramolecular energy accounting done in Widom insertions is applied to other CBMC moves.  Widom insertions now include
    no intramolecular energy except for what is computed by Excess_Molecule_Intrafragment_Energy and the interfragment
    intramolecular energy, since any remaining parts would have been used to generate the fragment libraries and would
    have to be subtracted back out if included, which is inefficient.  This method should be more robust than what was
    previously done, and should probably be applied to other CBMC moves as well.
    Use of undamped shifted force method for coulombic interactions in CBMC trial energies is only partially implemented.
    rwsmith7531 committed Oct 13, 2023
    Configuration menu
    Copy the full SHA
    89a3ea2 View commit details
    Browse the repository at this point in the history

Commits on Nov 15, 2023

  1. Merge branch 'cbmc_sf' into bit_cell_overlap and make various improve…

    …ments.
    
    Improve vectorization of reciprocal ewald energy calculation for Widom insertions.
    Add vectorized random number generation subroutines, which are used in Build_Molecule.
    Fix bug causing problems when writing fragment mcf file with RB torsions.
    Change file unit numbers to not be problematic for Widom insertion simulations with more than 10 species.
    Stop wasting time setting and applying bitcell overlap mask where mask bits are known to be permanently zero.
    Allow user to specify the use of shifted force electrostatics for cbmc trial energy calculation.
    rwsmith7531 committed Nov 15, 2023
    Configuration menu
    Copy the full SHA
    b139e9f View commit details
    Browse the repository at this point in the history

Commits on Dec 18, 2023

  1. Correct the triclinic functionality of cell list related enhancements…

    … and optimize overlap voxel grid setup.
    
    Add a minor optimimization to vectorized random number generation.
    Correct stack memory inflation due to certain array bounds increasing by 8 every Widom insertion frame.
    Add some code to help visualize bitcell overlap detection masks and grids outside Cassandra;
    this will need to be removed eventually.
    rwsmith7531 committed Dec 18, 2023
    Configuration menu
    Copy the full SHA
    2011ae9 View commit details
    Browse the repository at this point in the history

Commits on Mar 11, 2024

  1. Implement cavity biasing and several optimizations.

    Cavity biasing is implemented. This is the version of Cassandra used for the simulations
    in Ryan Smith's dissertation chapter 4 and the test particle insertion enhancement paper
    unless they are later rerun with a faster version. BOVINE overlap checking code is made
    more concise with forced inlining. Atom ID pair overlap radius optimization histogram
    creation portion of widom_insert is made robust to some atomic overlap not being
    detected due to floating point rounding, which hasn't been a problem but possibly could
    have been if the algorithm were not made robust. It is also now parallelized with
    OMP WORKSHARE without leaving and re-entering the parallel region.
    rwsmith7531 committed Mar 11, 2024
    Configuration menu
    Copy the full SHA
    7ce03f5 View commit details
    Browse the repository at this point in the history
  2. Configuration menu
    Copy the full SHA
    8bee4d9 View commit details
    Browse the repository at this point in the history
  3. Configuration menu
    Copy the full SHA
    2727efe View commit details
    Browse the repository at this point in the history

Commits on Mar 15, 2024

  1. Configuration menu
    Copy the full SHA
    db25d46 View commit details
    Browse the repository at this point in the history

Commits on Mar 21, 2024

  1. Repair molecules when reading wrapped trajectories and optimize cell …

    …matrix basis.
    
    Previously, Cassandra's trajectory reader would not work when the trajectory coordinates
    were PBC-wrapped by atoms rather than by molecule center of mass or not at all (unwrapped)
    if the trajectory molecules are polyatomic since Cassandra wraps molecules by center of mass,
    which requires molecules to be intact.
    This commit allows the trajectroy reader to repair partially-wrapped molecules.
    It also optimizes parts of the trajectory reader, including more vectorization.
    The LAMMPS trajectory conversion script now accepts wrapped coordinates, not just
    unwrapped coordinates.
    The subroutine Load_Next_Frame and other (non-XTC) trajectory reader procedures are now
    included in a module, Trajectory_Reader_Routines, rather than having Load_Next_Frame be
    a non-module subroutine containing the other (non-XTC) trajectory reader procedures.
    Box cell matrices are now automatically converted to the upper triangular form used by LAMMPS,
    since it allows better optimization. Coordinates loaded from a trajectory file, checkpoint file,
    or configuration file are automatically converted to the new basis if the basis is changed.
    rwsmith7531 committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    69389c1 View commit details
    Browse the repository at this point in the history
  2. Compare read cell matrix this_length against orig_length instead of l…

    …ength do detect box size/shape change.
    rwsmith7531 committed Mar 21, 2024
    Configuration menu
    Copy the full SHA
    b7ba1ff View commit details
    Browse the repository at this point in the history

Commits on Apr 18, 2024

  1. Optimize Ewald summation code.

    Improve vectorization and multithreading and improve mathematical formulation of Ewald summation.
    Also overhaul data structures for Ewald data and molecule pair energy and replace
    large array copying with memory allocation transfers or remove them entirely (if they're unnecessary).
    The arbitrary limit on the number of kspace vectors was removed and replaced with a much larger limit
    based on implementation limitations that are unlikely to be met for sane systems.
    If the new limits ever become too low for a sane application, the limits may be increased by updating
    the integer components of a kspace vector to be encoded in a 64-bit integer instead of a 32-bit integer.
    For triclinic and non-cubic, orthogonal boxes, the range within which to check kspace vectors is automatically
    computed based on the face distances of a box in reciprocal space for which the cell matrix is
    the transpose of the inverse of the cell matrix for the real box.
    Previously, the range to check in reciprocal space was hardcoded for triclinic and non-cubic, orthogonal boxes.
    rwsmith7531 committed Apr 18, 2024
    Configuration menu
    Copy the full SHA
    be7a1b9 View commit details
    Browse the repository at this point in the history

Commits on Apr 19, 2024

  1. Configuration menu
    Copy the full SHA
    b5bd87c View commit details
    Browse the repository at this point in the history

Commits on Apr 22, 2024

  1. Configuration menu
    Copy the full SHA
    201a106 View commit details
    Browse the repository at this point in the history

Commits on May 3, 2024

  1. Merge branch 'improved_ewald_setup' into extreme_efficiency_enhancements

    Also improve cavity biasing random position generation and use 32-bit integers to encode
    cavity voxel coordinates when voxel grid is small enough.
    
    This commit also adds a "compatibility mode" that enabled by default in this commit.
    When compatibility_mode is true, several changes are made to the CBMC routines to try to
    emulate their old implementation. Although the new implementation is correct, it generates and
    uses random numbers differently, causing many tests to fail at the moment.
    
    Also improve trajectory reader parallelization and efficiency.
    
    Add special system Ewald reciprocal energy routine for simulations using the trajectory reader.
    Trajectory reader simulations (sim type pregen) don't need sin_mol and cos_mol, so they are not allocated.
    rwsmith7531 committed May 3, 2024
    Configuration menu
    Copy the full SHA
    7887319 View commit details
    Browse the repository at this point in the history

Commits on May 10, 2024

  1. Detect SIMD vector size and alignment from compiler options and adjus…

    …t padding and vectorization accordingly.
    
    This commit also adds lossless compression for cavity_locs and cavity_locs_int32, which store cavity voxel locations.
    Target architecture optimization flags were added to gfortran Makefiles.
    This commit also reduces stack usage when creating atompair_nrg_table_reduced, which would previously sometimes cause
    Cassandra to run out of stack space unless the stack size limit is increased from the default, depending on the default limit
    and memory requirements.
    
    For the Intel compiler, Cassandra derives memory padding parameters from the -align arraynbyte compiler option.
    For the gfortran compiler, Cassandra derives this from the -m option, such as -mavx2 or -msse4.2.
    With gfortran, the -m option should always be included even if it is redundant with -march since Cassandra
    uses it to determine memory padding and in rare cases vector size.
    rwsmith7531 committed May 10, 2024
    Configuration menu
    Copy the full SHA
    51784a9 View commit details
    Browse the repository at this point in the history