lp:~albertog/siesta/gridxc-integration

Created by Alberto Garcia and last modified

This branch was merged intro trunk-psml.

Get this branch:
bzr branch lp:~albertog/siesta/gridxc-integration
Only Alberto Garcia can upload to this branch. If you are Alberto Garcia please log in for upload directions.

Branch merges

Related bugs

Related blueprints

Branch information

Owner:
Alberto Garcia
Project:
Siesta
Status:
Merged

Recent revisions

483. By Alberto Garcia

Use external gridxc library

The arch.make must now define the GRIDXC_ROOT variable
(See Src/Sys/GRIDXC.make for the whole story, including
parallel makes for Siesta and serial for Utils).

See Src/Makefile and Util/Gen-basis/Makefile for new idioms.

Src/SiestaXC is kept to facilitate updates.

482. By Alberto Garcia

Sync with trunk-503

Note that the libGridXC code is kept in the Siesta tree for now.
Also, Src/SiestaXC is kept to facilitate updates.

481. By Alberto Garcia

Revamped timer interface in gridxc. Build fixes

* Revamped the timer interface in gridxc

    Removed the internal timer framework, as it was not really needed
    in its full glory. If cellxc timing information is needed in the
    future to fine-tune the load-balancing mechanism, it should be
    handled in a more light-weight manner.

    Internal timings are passed over to the calling program through
    the 'gridxc_timer_*' calls.

    The MPI subsystem is instrumented for timing also. It calls
    also the gridxc_timer_* routines if 'time_mpi_calls' is set
    in 'gridxc_init'.

* Use package-specific module names in MPI_instr

    If a program uses several versions of the MPI interfaces,
    the first appearing in the linking list will be used for
    everything. This causes problems for package-specific
    functionality.

    The modules in MPI_instr are now renamed at the time
    the 'generate.sh' script is run.

* Bring in needed fixes in Util and elsewhere

removed:
  Src/gridxc/m_timer.F90
  Util/Gen-basis/local_die.F
added:
  Util/Gen-basis/handlers.f
  Util/VCA/handlers.f
modified:
  Src/gridxc/MPI_instr/Makefile
  Src/gridxc/MPI_instr/generate.sh
  Src/gridxc/MPI_instr/mpi__type_s.f90
  Src/gridxc/MPI_instr/mpi__type_sv.f90
  Src/gridxc/MPI_instr/mpi__type_v.f90
  Src/gridxc/MPI_instr/mpi__type_vs.f90
  Src/gridxc/MPI_instr/mpi_instr.f90
  Src/gridxc/MPI_instr/mpi_interfaces.F
  Src/gridxc/Testers/handlers.f90
  Src/gridxc/Testers/test3.F90
  Src/gridxc/atomxc.F90
  Src/gridxc/cellxc.F90
  Src/gridxc/fft3d.F90
  Src/gridxc/gridxc.F90
  Src/gridxc/gridxc_config.F90
  Src/gridxc/makefile
  Src/gridxc/radfft.f
  Src/obj_setup.sh
  Src/siesta_init.F
  Util/Gen-basis/Makefile
  Util/VCA/Makefile

480. By Alberto Garcia

Sync with trunk for build fixes

Bring in needed fixes in Util and elsewhere

added:
  Util/Gen-basis/local_die.F
  Util/STM/ol-stm/Src/handlers.f
modified:
  Docs/CHANGES
  Src/SiestaXC/atomxc.F90
  Src/SiestaXC/mesh1d.f90
  Util/Denchar/Src/Makefile
  Util/Gen-basis/Makefile
  Util/Gen-basis/gen-basis.F
  Util/STM/ol-stm/Src/Makefile
  Util/STM/ol-stm/Src/atompla.f
  Util/STM/ol-stm/Src/extrapolate.f
  Util/STM/ol-stm/Src/fftw3_mymod.f90
  Util/STM/ol-stm/Src/readstm.f
  Util/STM/ol-stm/Src/reinitstm.f
  Util/STM/ol-stm/Src/stm.f
  Util/SiestaSubroutine/FmixMD/Src/Makefile
  Util/build_all.sh*

479. By Alberto Garcia

Fixes to gridxc internal routines

- Remove 'comm' arg from moreParallelSubs routines

It came after some optional arguments, which might have confused
compilers. This fixes an obscure bug.

- Make 'interpolation' local to mesh1d

modified:
  Src/gridxc/atomxc.F90
  Src/gridxc/cellxc.F90
  Src/gridxc/debugxc.F90
  Src/gridxc/m_timer.F90
  Src/gridxc/makefile
  Src/gridxc/mesh1d.f90
  Src/gridxc/moreParallelSubs.F90

478. By Alberto Garcia

Import interim version of gridxc

It works in serial mode. Some elusive bug in parallel, being tracked
in different architectures.

Handlers for gridxc timers are in timer.F.

added:
  Src/gridxc/
  Src/gridxc/00_README
  Src/gridxc/BSD_LICENSE
  Src/gridxc/MPI_instr/
  Src/gridxc/MPI_instr/Makefile
  Src/gridxc/MPI_instr/generate.sh
  Src/gridxc/MPI_instr/kind_explorer.f90
  Src/gridxc/MPI_instr/mpi__type_s.f90
  Src/gridxc/MPI_instr/mpi__type_sv.f90
  Src/gridxc/MPI_instr/mpi__type_v.f90
  Src/gridxc/MPI_instr/mpi__type_vs.f90
  Src/gridxc/MPI_instr/mpi_instr.f90
  Src/gridxc/MPI_instr/mpi_interfaces.F
  Src/gridxc/Testers/
  Src/gridxc/Testers/Reference/
  Src/gridxc/Testers/Reference/test1.out
  Src/gridxc/Testers/Reference/test2.out
  Src/gridxc/Testers/Reference/test3.out
  Src/gridxc/Testers/Reference/test4.out
  Src/gridxc/Testers/handlers.f90
  Src/gridxc/Testers/makefile
  Src/gridxc/Testers/test.f90
  Src/gridxc/Testers/test1.f90
  Src/gridxc/Testers/test2.F90
  Src/gridxc/Testers/test2.m
  Src/gridxc/Testers/test3.F90
  Src/gridxc/Testers/test4.F90
  Src/gridxc/Testers/test5.f90
  Src/gridxc/Testers/test5.m
  Src/gridxc/Testers/test6.f90
  Src/gridxc/Testers/test6.m
  Src/gridxc/alloc.F90
  Src/gridxc/am05.f90
  Src/gridxc/atomxc.F90
  Src/gridxc/bessph.f
  Src/gridxc/cellsubs.f
  Src/gridxc/cellxc.F90
  Src/gridxc/chkgmx.f
  Src/gridxc/debugxc.F90
  Src/gridxc/fft3d.F90
  Src/gridxc/fftr.F90
  Src/gridxc/ggaxc.F
  Src/gridxc/gridxc.F90
  Src/gridxc/gridxc_config.F90
  Src/gridxc/interpolation.f90
  Src/gridxc/ldaxc.F
  Src/gridxc/lib-arch.make
  Src/gridxc/m_fft_gpfa.F
  Src/gridxc/m_io.f
  Src/gridxc/m_timer.F90
  Src/gridxc/m_walltime.f90
  Src/gridxc/makefile
  Src/gridxc/mesh1d.f90
  Src/gridxc/mesh3d.F90
  Src/gridxc/minvec.f
  Src/gridxc/moreParallelSubs.F90
  Src/gridxc/precision.F
  Src/gridxc/radfft.f
  Src/gridxc/sorting.f
  Src/gridxc/sys.F
  Src/gridxc/vdwxc.F90
  Src/gridxc/vv_vdwxc.F90
  Src/gridxc/xcmod.f90
modified:
  .bzrignore
  Src/Makefile
  Src/atom.F
  Src/cellxc_mod.F
  Src/dhscf.F
  Src/fft.F
  Src/forhar.F
  Src/meshsubs.F
  Src/moreParallelSubs.F90
  Src/read_xc_info.F
  Src/siesta_init.F
  Src/timer.F90

477. By Alberto Garcia

Control MPI timing from fdf file. Choose wall- or cpu-time

By simply turning 'timer_mpi' into an external function (defined in
timer.F90), the user can control the generation of timing information
from MPI calls. The relevant fdf line is

    time-mpi-calls T

This option can work with both the 'tree-timer' (use-tree-timer T),
and the traditional 'linear' timer. In the former case only the root
node information is printed. For the latter, load-balance information
is also printed.

The kind of timing performed can be controlled with the fdf idiom

   use-wall-time T

If .true., the wall-time is used, otherwise calls to the 'cpu_time'
intrinsic are used. Wall-time is used by default for the tree-timer,
whereas the default for the 'linear' timer is to use the cpu time.

removed:
  Src/MPI/timer_mpi.F90
modified:
  Src/MPI/Makefile
  Src/MPI/mpi__type_s.f90
  Src/MPI/mpi__type_sv.f90
  Src/MPI/mpi__type_v.f90
  Src/MPI/mpi__type_vs.f90
  Src/MPI/mpi_siesta.f90
  Src/m_timer.F90
  Src/siesta_init.F
  Src/timer.F90

476. By Alberto Garcia

Update alloc.F90 for cosmetics

475. By Alberto Garcia

Separate routine and array name by '@'

474. By Alberto Garcia

Provided a callback for memory events

The alloc module calls 'alloc_memory_event', which
can be implemented in Siesta by the 'memory_event'
routine in the 'memory_log' module.

Modified Denchar to handle this also, with minimal
handlers for the alloc callbacks.

(+ assorted fixes for previous commits)

added:
  Src/alloc_memory_event.F
  Util/Denchar/Src/alloc_handlers.f90
modified:
  Src/Makefile
  Src/SiestaXC/makefile
  Src/SiestaXC/siestaxc.F90
  Src/alloc.F90
  Src/memory.F
  Src/memory_log.F90
  Src/siesta_end.F
  Src/siesta_init.F
  Src/siesta_options.F90
  Src/state_init.F
  Util/Denchar/Src/Makefile

Branch metadata

Branch format:
Branch format 7
Repository format:
Bazaar repository format 2a (needs bzr 1.16 or later)
This branch contains Public information 
Everyone can see this information.

Subscribers