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