Error when running two instances of gulp simultaneously

Hello,

I am trying to run many instances of gulp in parallel on a supercomputing cluster. I have a job (the exact details of which don’t matter, I think) which I can submit and run fine on its own. When I submit more than one job (whether calling the same or different executables) simultaneously, the jobs sometimes fail with the message


  •                   GENERAL UTILITY LATTICE PROGRAM                        *
    
  •                             Julian Gale                                  *
    
  •                   Curtin Institute for Computation                       *
    
  •                School of Molecular and Life Sciences                     *
    
  •                Curtin University, Western Australia                      *
    

  • Version = 6.0.0 * Last modified = 6th April 2022 *

error opening file gulptmp_4_1
Program terminated in subroutine channels attempting to open unit 4

Program terminated by processor 0 in channels

I guess its a bit of an odd query and probably has more to do with the way I am running it than GULP itself, I was wonder if anyone has experience of a similar problem and a potential work around.

Best Wishes,
Johny

There are 2 ways to pass input to GULP, for example:

  1. mpirun -np 4 gulp < input.gin > input.gout
  2. mpirun -np 4 gulp input
    The first approach is fine in serial, but can be less reliable in parallel. Therefore it is recommended to use the 2nd approach in parallel (NB:“input” is the root name that will be expected for the .gin file and will produce a .gout file).

Hello,

I have exactly the same problem although I got rid of input/output files and call gulp from the Python code like this:

        result = subprocess.run(["gulp"], input=bytes(input_str, "utf-8"), stdout=subprocess.PIPE)
        result_lines = result.stdout.decode("utf-8").splitlines()

I would be grateful for any suggestions on how to fix this problem.

Best wishes,
Elena

Hi Elena,
It’s not clear exactly what your problem is & whether it’s a python one rather than a GULP one (you’d need to ask a python person about that). From your code snippet it seems you are running GULP in serial & so either of the methods for running GULP should be fine as per the previous post (except without the “mpirun -np 4” bit ( and assuming GULP is in your path, otherwise the path needs to be specified for the executable or use ./gulp if it’s in the local directory).
Regards,
Julian