diff --git a/.travis.yml b/.travis.yml index 90de546d..c7730ed7 100644 --- a/.travis.yml +++ b/.travis.yml @@ -21,6 +21,7 @@ addons: - gcc - liblapack-dev - libblas-dev + - wget env: - OPAMROOT=$HOME/.opam diff --git a/GITHUB.md b/GITHUB.md index 032bc668..f0069c3c 100644 --- a/GITHUB.md +++ b/GITHUB.md @@ -5,11 +5,6 @@ master The current up-to-date working branch, that users download It should only contain the latest release and bug fixes. -documentation - It is a fork of the *master* branch, but with the `/docs` directory - containing the sources built properly for the ReadTheDocs website - documentation. - develop It is a fork of the *master* branch with new developments that will be merged in the *master* branch for the next release. diff --git a/README.md b/README.md index cd0bd146..bbb146be 100644 --- a/README.md +++ b/README.md @@ -8,12 +8,13 @@ A programming environment for wave function methods * [Visit the web site](https://quantumpackage.github.io/qp2) * [Download the latest release](http://github.com/QuantumPackage/qp2/releases) -* [Read the documentation](https://quantum-package-scemamamaster.readthedocs.io/) **TODO** +* [Read the documentation](https://quantum-package.readthedocs.io) # Build status -* Master: [![Build Status](https://travis-ci.org/QuantumPackage/qp2.svg?branch=master)](https://travis-ci.org/QuantumPackage/qp2) -* Development branch : [![Build Status](https://travis-ci.org/QuantumPackage/qp2.svg?branch=develop)](https://travis-ci.org/QuantumPackage/qp2) +* Master: [![master build status](https://travis-ci.org/QuantumPackage/qp2.svg?branch=master)](https://travis-ci.org/QuantumPackage/qp2) +* Development branch : [![dev build status](https://travis-ci.org/QuantumPackage/qp2.svg?branch=develop)](https://travis-ci.org/QuantumPackage/qp2) +* Documentation [![Doc Status](https://quantum-package.readthedocs.io/en/latest/?badge=master) # Credits diff --git a/external/.gitignore b/external/.gitignore new file mode 100644 index 00000000..241e560d --- /dev/null +++ b/external/.gitignore @@ -0,0 +1,2 @@ +* + diff --git a/external/Python/.gitignore b/external/Python/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/lib/.gitignore b/lib/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/ocaml/.gitignore b/ocaml/.gitignore new file mode 100644 index 00000000..50a9344d --- /dev/null +++ b/ocaml/.gitignore @@ -0,0 +1,36 @@ +_build +element_create_db +element_create_db.byte +ezfio.ml +.gitignore +Git.ml +Input_ao_one_e_ints.ml +Input_ao_two_e_erf_ints.ml +Input_ao_two_e_ints.ml +Input_auto_generated.ml +Input_becke_numerical_grid.ml +Input_davidson.ml +Input_density_for_dft.ml +Input_determinants.ml +Input_dft_keywords.ml +Input_dressing.ml +Input_mo_one_e_ints.ml +Input_mo_two_e_erf_ints.ml +Input_mo_two_e_ints.ml +Input_nuclei.ml +Input_perturbation.ml +Input_pseudo.ml +Input_scf_utils.ml +qp_create_ezfio +qp_create_ezfio.native +qp_edit +qp_edit.ml +qp_edit.native +qp_print_basis +qp_print_basis.native +qp_run +qp_run.native +qp_set_mo_class +qp_set_mo_class.native +qptypes_generator.byte +Qptypes.ml diff --git a/plugins/.gitignore b/plugins/.gitignore new file mode 100644 index 00000000..241e560d --- /dev/null +++ b/plugins/.gitignore @@ -0,0 +1,2 @@ +* + diff --git a/share/.gitignore b/share/.gitignore new file mode 100644 index 00000000..e69de29b diff --git a/src/davidson/davidson_parallel.irp.f b/src/davidson/davidson_parallel.irp.f index f3ad7552..a1f69841 100644 --- a/src/davidson/davidson_parallel.irp.f +++ b/src/davidson/davidson_parallel.irp.f @@ -37,43 +37,46 @@ subroutine davidson_run_slave(thread,iproc) integer, external :: connect_to_taskserver integer, external :: zmq_get_N_states_diag - + PROVIDE mpi_rank zmq_to_qp_run_socket = new_zmq_to_qp_run_socket() + zmq_socket_push = new_zmq_push_socket(thread) + integer :: ierr, doexit - doexit = 0 - if (connect_to_taskserver(zmq_to_qp_run_socket,worker_id,thread) == -1) then - call sleep(1) + do + doexit = 0 if (connect_to_taskserver(zmq_to_qp_run_socket,worker_id,thread) == -1) then - doexit=1 + call sleep( int(1.5+float(mpi_rank)/10.) ) + if (connect_to_taskserver(zmq_to_qp_run_socket,worker_id,thread) == -1) then + doexit=1 + endif endif - endif - IRP_IF MPI - include 'mpif.h' - integer :: sendbuf, recvbuf - sendbuf = doexit - recvbuf = doexit - call MPI_ALLREDUCE(sendbuf, recvbuf, 1, MPI_INTEGER, MPI_SUM, MPI_COMM_WORLD, ierr) - if (ierr /= MPI_SUCCESS) then - print *, irp_here//': Unable to reduce ' - stop -1 + IRP_IF MPI + include 'mpif.h' + integer :: sendbuf, recvbuf + sendbuf = doexit + recvbuf = doexit + call MPI_ALLREDUCE(sendbuf, recvbuf, 1, MPI_INTEGER, MPI_SUM, MPI_COMM_WORLD, ierr) + if (ierr /= MPI_SUCCESS) then + print *, irp_here//': Unable to reduce ' + stop -1 + endif + doexit = recvbuf + IRP_ENDIF + + if (doexit == 0) then + exit + else + print *, irp_here, ': retrying connection (', doexit, ')' endif - doexit = recvbuf - IRP_ENDIF - - if (doexit > 0) then - call end_zmq_to_qp_run_socket(zmq_to_qp_run_socket) - return - endif - - zmq_socket_push = new_zmq_push_socket(thread) + enddo do if (zmq_get_N_states_diag(zmq_to_qp_run_socket, 1) /= -1) then exit endif - print *, 'Waiting for N_states_diag in ', irp_here + print *, irp_here, ': Waiting for N_states_diag' call sleep(1) enddo call davidson_slave_work(zmq_to_qp_run_socket, zmq_socket_push, N_states_diag, N_det, worker_id) @@ -82,6 +85,7 @@ subroutine davidson_run_slave(thread,iproc) if (disconnect_from_taskserver(zmq_to_qp_run_socket,worker_id) == -1) then call sleep(1) if (disconnect_from_taskserver(zmq_to_qp_run_socket,worker_id) == -1) then + print *, irp_here, ': disconnect failed' continue endif endif