• Home
  • History
  • Annotate
Name Date Size #Lines LOC

..03-May-2022-

cmake/H08-Nov-2017-327250

examples/H03-May-2022-791334

simint/H03-May-2022-1,484,1161,051,472

test/H03-May-2022-44,57243,586

CHANGELOGH A D08-Nov-20172 KiB7260

LICENSEH A D08-Nov-20171.5 KiB3225

READMEH A D08-Nov-20173.2 KiB12884

README

1Simint
2----------------------------------------------------
3Horizontally-vectorized electron repulsion integrals
4
5
6----------
7WARNING
8----------
9This is still a somewhat experimental library.
10I've validated it as much as possible, but there still may be bugs. In addition,
11the API may change in the future.
12
13----------
14WARNING 2
15----------
16This currently supports only up to (7 7 | 7 7) integrals.
17Any permutation of angular momentum *is* supported
18
19
20-------------
21Requirements
22-------------
23
24Compiler:
25  Intel Compiler v15 or above
26  GCC v4.9 or above
27
28CMake 3.0.2 or above
29Intel CPU (may work on others, but not tested)
30
31
32---------------------------
33Configuring
34---------------------------
35
36Configuration and building is done via CMake (www.cmake.org).
37Generally, from within the extracted directory:
38
39    mkdir build; cd build
40    CC=icc CXX=icpc cmake (...other options...)  ../
41
42Most importantly, you need to select which feature set to compile with.
43This is done with the SIMINT_VECTOR variable
44
45    -DSIMINT_VECTOR=sse
46         Intel CPUs with SSSE3 support
47           * Basically any CPU make in the last 10 years
48
49    -DSIMINT_VECTOR=avx
50         Intel CPUs with AVX support
51           * Sandy Bridge (not tested)
52           * Ivy Bridge
53           * Haswell (if you want)
54
55    -DSIMINT_VECTOR=avx2
56         Intel CPUs with AVX and FMA support
57           * Haswell
58
59    -DSIMINT_VECTOR=micavx512
60         Intel KNL (experimental)
61
62Scalar (unvectorized) versions of the code can be compiled that still
63use a particular instruction set. This is done by prepending "scalar-"
64to the given type. For example, "scalar-avx2" will enable AVX2, but
65still disable vectorization.
66
67Other options:
68
69    -DENABLE_TESTS:Bool=Off
70         Disable building tests
71
72    -DSIMINT_MAXAM=[integer]
73         Only compile angular momentum up to [integer]
74
75    -DBUILD_SHARED_LIBS:Bool=True
76         Build shared library, rather than a static library (default is static library)
77
78    -DSIMINT_STANDALONE:Bool=True
79         Create a standalone dynamic library (make as self-contained as possible
80         by linking in external libraries).
81
82
83    -DSIMINT_C_FLAGS="flag1;flag2"
84    -DSIMINT_TESTS_CXX_FLAGS="flag1;flag2"
85
86         Additional flags to pass to Simint and the testing features, respectively.
87
88
89---------------------------
90Building
91---------------------------
92
93make and make install, as usual
94
95
96---------------------------
97Tests
98---------------------------
99
100Can run tests from the build directory. See tests/dat for available
101molecules and basis sets.
102
103
104    OMP_NUM_THREADS=1 test_eri           - Validate accuracy
105    OMP_NUM_THREADS=1 benchmark_eri      - Benchmark simint
106
107You can of course change the number of threads to whatever you want. By default,
108it will use all available threads/cores.
109
110Examples (run from the build directory):
111
112    OMP_NUM_THREADS=4 test/test_eri ../test/dat/water.sto-3g.mol
113    OMP_NUM_THREADS=4 test/test_eri ../test/dat/ethane.aug-cc-pvtz.mol
114    OMP_NUM_THREADS=4 test/benchmark_eri ../test/dat/benzene.roos-ano-tz.mol
115
116
117
118---------------------------
119Code examples
120---------------------------
121
122Some simple examples of using the library are in the "examples" subdirectory.
123They are built by default.
124
125    examples/example1
126
127
128