Skip to content
Snippets Groups Projects

P2P

Open
Jammer, Timrequested to merge
p2p into main
3 files
+ 36
30
Compare changes
  • Side-by-side
  • Inline

Files

#! /usr/bin/python3
#! /usr/bin/python3
from scripts.Infrastructure import MPICall
from scripts.Infrastructure import MPICall
from scripts.Infrastructure.Instruction import Instruction
from scripts.Infrastructure.Instruction import Instruction
from scripts.Infrastructure.MPICallFactory import MPICallFactory
from scripts.Infrastructure.AllocCall import AllocCall, get_free
from scripts.Infrastructure.AllocCall import AllocCall, get_free
@@ -44,7 +43,7 @@ class CorrectParameterFactory:
@@ -44,7 +43,7 @@ class CorrectParameterFactory:
if param in ["COMM", "comm"]:
if param in ["COMM", "comm"]:
return "MPI_COMM_WORLD"
return "MPI_COMM_WORLD"
if param in ["newcomm", "newintercomm"]:
if param in ["newcomm", "newintercomm"]:
return "newcomm"
return "mpi_comm_0"
if param in ["STATUS", "status"]:
if param in ["STATUS", "status"]:
return "MPI_STATUS_IGNORE"
return "MPI_STATUS_IGNORE"
if param in ["OPERATION", "op"]:
if param in ["OPERATION", "op"]:
@@ -56,21 +55,21 @@ class CorrectParameterFactory:
@@ -56,21 +55,21 @@ class CorrectParameterFactory:
if param in ["PARTITION", "partition"]:
if param in ["PARTITION", "partition"]:
return "0"
return "0"
if param in ["REQUEST", "request"]:
if param in ["REQUEST", "request"]:
return "&request"
return "&mpi_request_0"
if param in ["GROUP", "group"]:
if param in ["GROUP", "group"]:
return "&group"
return "&mpi_group_0"
if param in ["color"]:
if param in ["color"]:
return "1"
return "1"
if param in ["message"]:
if param in ["message"]:
return "&msg"
return "&mpi_message_0"
if param in ["flag"]:
if param in ["flag"]:
return "&flag"
return "&int_0"
if param in ["split_type"]:
if param in ["split_type"]:
return "MPI_COMM_TYPE_SHARED"
return "MPI_COMM_TYPE_SHARED"
if param in ["key"]:
if param in ["key"]:
return "rank"
return "rank"
if param in ["errhandler"]:
if param in ["errhandler"]:
return "MPI_ERRORS_ARE_FATAL" #
return "MPI_ERRORS_ARE_FATAL"
if param in ["local_comm"]:
if param in ["local_comm"]:
return "MPI_COMM_SELF"
return "MPI_COMM_SELF"
if param in ["local_leader"]:
if param in ["local_leader"]:
@@ -82,7 +81,7 @@ class CorrectParameterFactory:
@@ -82,7 +81,7 @@ class CorrectParameterFactory:
if param in ["target_disp"]:
if param in ["target_disp"]:
return "0"
return "0"
if param in ["win"]:
if param in ["win"]:
return "win"
return "mpi_win_0"
if param in ["baseptr"]:
if param in ["baseptr"]:
return "&" + self.winbuf_var_name
return "&" + self.winbuf_var_name
if param in ["base"]:
if param in ["base"]:
@@ -105,22 +104,10 @@ class CorrectParameterFactory:
@@ -105,22 +104,10 @@ class CorrectParameterFactory:
return "0"
return "0"
if variable_type == "MPI_Request":
if variable_type == "MPI_Request":
return "MPI_REQUEST_NULL"
return "MPI_REQUEST_NULL"
 
if variable_type == "MPI_Comm":
 
return "MPI_COMM_NULL"
 
if variable_type == "MPI_Message":
 
return "MPI_MESSAGE_NULL"
# TODO implement other types
# TODO implement other types
print("Not Implemented: " + variable_type)
print("Not Implemented: " + variable_type)
assert False, "Param not known"
assert False, "Param not known"
# todo also for send and non default args
def get_matching_recv(call: MPICall) -> MPICall:
correct_params = CorrectParameterFactory()
recv = MPICallFactory().mpi_recv(
correct_params.get("BUFFER"),
correct_params.get("COUNT"),
correct_params.get("DATATYPE"),
correct_params.get("SRC"),
correct_params.get("TAG"),
correct_params.get("COMM"),
correct_params.get("STATUS", "MPI_Recv"),
)
return recv
Loading