GRAPE-6 library notes
Copyright 2000- Jun Makino
2005/2/12
For some time, g6_flus_jp_buffer was never called from
g6_set_j_particle, which means there is no automatic flushing of
buffer even if it is overflown. This problem is fixed (I believe).
2004/12/31
Added the descriptions of undocumented functions like firsthalf0,
lasthalf0, lasthalf0a, and created new function g6_getnjmax.
2004/8/13
Change to fix mysterious problem with AMD64/K8T800 motherbords that
the last few words of the neighbour list is not correctly transferred
by DMA. Also, reset_board, removed on the previous version, is
resurrected on AMD platforms to allow more stable operation.
This version is tested on AMD64/K8T800 with SuSE 9.1.
2004/5/23
Change for Intel 875/865 (tested on Intel 865/875 motherboards with
Northwood 3.4GHz, Vine Linux 2.4CR4, gcc 2.95.3)
2004/1/13
Works on AMD64 (tested only on TurboLinux8 for AMD64 + vanilla kernel
2.4.23 + gcc 3.2.2)
2003/3/24
Performance of neighbour list read, in particular
that of g6_get_neighbour_list, is improved using some rather low-level
source-level hand-tuning. Also, now the user can specify if the
neighbour list is sorted by indices or not. If sorting is not
required, performance is significantly improved.
2002/10/8
Changed the install script to try alternate makefile in case the
compilation of the device driver failed.
2002/10/2
Implemented a completely new mechanism to ensure the "fair" use of
CPU time, when multiple processes run on a single machine.
2002/9/29
Fxed several problems related to the optimizer of gcc 3.x and
icc. Now the library seems to work with these new compilers. However,
current install script still assumes old gcc (2.95.x), and may fail in
some tests because of the differences in ASCII I/O libraries between
gcc 2.95.x and 3.x.
I'll try to fix this problem.
2002/9/28
Made complete rewrite of g6_get_neibour_list, so that now it make
use of DMA and the capability of GRAPE-6 board to reply to read
multiple chips simultaneously. This should be a factor of 5-10 faster
than the old one.
In case the new function contain some bugs, or for benchmarking
purpose, the old version of the function is kept in the library, with
the name g6_get_neibour_list_old
Currently, this new function is available only for x86 systems.
TODO
- change the install script so that it recognizes the compiler
used, and uses appropriate standard result to compare.
- change the install script and makefile to recognize an SMP kernel
and use appropriate cpp definitions.