|
56 | 56 | "--mpi-launcher={mpi_launcher} " |
57 | 57 | "--available-accelerators {accelerators}") |
58 | 58 |
|
59 | | -DEFAULT_INTERCHANGE_LAUNCH_CMD = "interchange.py" |
| 59 | +DEFAULT_INTERCHANGE_LAUNCH_CMD = ["interchange.py"] |
60 | 60 |
|
61 | 61 | GENERAL_HTEX_PARAM_DOCS = """provider : :class:`~parsl.providers.base.ExecutionProvider` |
62 | 62 | Provider to access computation resources. Can be one of :class:`~parsl.providers.aws.aws.EC2Provider`, |
|
78 | 78 | cores_per_worker, nodes_per_block, heartbeat_period ,heartbeat_threshold, logdir). For example: |
79 | 79 | launch_cmd="process_worker_pool.py {debug} -c {cores_per_worker} --task_url={task_url} --result_url={result_url}" |
80 | 80 |
|
81 | | - interchange_launch_cmd : str |
82 | | - Custom command line string to launch the interchange process from the executor. If undefined, |
83 | | - the executor will use the default "interchange.py" command. |
| 81 | + interchange_launch_cmd : Sequence[str] |
| 82 | + Custom sequence of command line tokens to launch the interchange process from the executor. If |
| 83 | + undefined, the executor will use the default "interchange.py" command. |
84 | 84 |
|
85 | 85 | address : string |
86 | 86 | An address to connect to the main Parsl process which is reachable from the network in which |
@@ -238,7 +238,7 @@ def __init__(self, |
238 | 238 | label: str = 'HighThroughputExecutor', |
239 | 239 | provider: ExecutionProvider = LocalProvider(), |
240 | 240 | launch_cmd: Optional[str] = None, |
241 | | - interchange_launch_cmd: Optional[str] = None, |
| 241 | + interchange_launch_cmd: Optional[Sequence[str]] = None, |
242 | 242 | address: Optional[str] = None, |
243 | 243 | worker_ports: Optional[Tuple[int, int]] = None, |
244 | 244 | worker_port_range: Optional[Tuple[int, int]] = (54000, 55000), |
@@ -548,7 +548,7 @@ def _start_local_interchange_process(self) -> None: |
548 | 548 |
|
549 | 549 | config_pickle = pickle.dumps(interchange_config) |
550 | 550 |
|
551 | | - self.interchange_proc = subprocess.Popen(self.interchange_launch_cmd.encode("utf-8"), stdin=subprocess.PIPE) |
| 551 | + self.interchange_proc = subprocess.Popen(self.interchange_launch_cmd, stdin=subprocess.PIPE) |
552 | 552 | stdin = self.interchange_proc.stdin |
553 | 553 | assert stdin is not None, "Popen should have created an IO object (vs default None) because of PIPE mode" |
554 | 554 |
|
|
0 commit comments