-
Notifications
You must be signed in to change notification settings - Fork 1
Open
Description
Hello,
The following program raises an error in Aislinn:
#include <mpi.h>
#include <stdio.h>
#include <stdlib.h>
#define buff_size 128
int main(int argc, char **argv) {
int nprocs = -1;
int rank = -1;
MPI_Init(&argc, &argv);
MPI_Comm_size(MPI_COMM_WORLD, &nprocs);
MPI_Comm_rank(MPI_COMM_WORLD, &rank);
printf("Hello from rank %d \n", rank);
if (nprocs < 2)
printf("MBI ERROR: This test needs at least 2 processes to produce a bug!\n");
int dest = (rank == nprocs - 1) ? (0) : (rank + 1);
int src = (rank == 0) ? (nprocs - 1) : (rank - 1);
int buf1[buff_size]; MPI_Request req1;
int buf2[buff_size]; MPI_Request req2;
MPI_Send_init(buf1, buff_size, MPI_INT, dest, 0, MPI_COMM_WORLD, &req1);
MPI_Start(&req1);
MPI_Irecv(buf2, buff_size, MPI_INT, src, 0, MPI_COMM_WORLD, &req2);
/* MISSING: MPI_Wait(&req1, MPI_STATUS_IGNORE); */
MPI_Wait(&req2, MPI_STATUS_IGNORE);
MPI_Request_free(&req1);
MPI_Request_free(&req2);
MPI_Finalize();
printf("Rank %d finished normally\n", rank);
return 0;
}
Here is the output of Aislinn in this case:
$ aislinn -p=2 MissingWait_Send_init_Irecv_nok
==AN== INFO: Aislinn v0.5.0
Traceback (most recent call last):
File "/builds/quinson/mbi2/tools/aislinn-git/bin/../src/aislinn/aislinn.py", line 359, in <module>
main()
File "/builds/quinson/mbi2/tools/aislinn-git/bin/../src/aislinn/aislinn.py", line 315, in main
if not generator.run():
File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/generator.py", line 195, in run
self.main_cycle()
File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/generator.py", line 184, in main_cycle
context.process_run_result(c.finish_async())
File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/context.py", line 150, in process_run_result
if self.handle_call(result[1], result[2:]):
File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/context.py", line 123, in handle_call
return call.run(self, args)
File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/mpicalls.py", line 921, in run
for i in xrange(len(args))])
File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/mpicalls.py", line 240, in MPI_Request_free
request = check.check_persistent_request(context, request_id, False, 1)
File "/builds/quinson/mbi2/tools/aislinn-git/src/aislinn/mpi/check.py", line 166, in check_persistent_request
context.add_error_and_throw(errormsg.InvalidPersistentRequest(
AttributeError: 'module' object has no attribute 'InvalidPersistentRequest'
Thanks for this tool,
Mt
Reactions are currently unavailable
Metadata
Metadata
Assignees
Labels
No labels