parsl 2024.8.5__py3-none-any.whl → 2024.8.19__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (48) hide show
  1. parsl/channels/__init__.py +1 -4
  2. parsl/channels/oauth_ssh/oauth_ssh.py +12 -4
  3. parsl/channels/ssh/ssh.py +17 -7
  4. parsl/channels/ssh_il/ssh_il.py +13 -3
  5. parsl/dataflow/dflow.py +1 -1
  6. parsl/executors/high_throughput/executor.py +18 -27
  7. parsl/executors/high_throughput/interchange.py +4 -0
  8. parsl/executors/high_throughput/mpi_executor.py +23 -2
  9. parsl/executors/high_throughput/mpi_prefix_composer.py +5 -4
  10. parsl/executors/taskvine/executor.py +2 -0
  11. parsl/executors/workqueue/executor.py +2 -0
  12. parsl/monitoring/db_manager.py +36 -49
  13. parsl/monitoring/monitoring.py +9 -5
  14. parsl/monitoring/remote.py +4 -4
  15. parsl/monitoring/router.py +16 -18
  16. parsl/providers/__init__.py +0 -4
  17. parsl/providers/ad_hoc/ad_hoc.py +6 -2
  18. parsl/tests/configs/local_adhoc.py +2 -2
  19. parsl/tests/test_htex/test_resource_spec_validation.py +40 -0
  20. parsl/tests/test_htex/test_zmq_binding.py +2 -1
  21. parsl/tests/test_mpi_apps/test_bad_mpi_config.py +29 -14
  22. parsl/tests/test_mpi_apps/test_mpi_mode_enabled.py +16 -8
  23. parsl/tests/test_mpi_apps/test_mpiex.py +2 -3
  24. parsl/tests/test_mpi_apps/test_resource_spec.py +39 -41
  25. parsl/tests/test_providers/test_local_provider.py +6 -5
  26. parsl/version.py +1 -1
  27. {parsl-2024.8.5.data → parsl-2024.8.19.data}/scripts/interchange.py +4 -0
  28. {parsl-2024.8.5.dist-info → parsl-2024.8.19.dist-info}/METADATA +5 -3
  29. {parsl-2024.8.5.dist-info → parsl-2024.8.19.dist-info}/RECORD +36 -47
  30. parsl/configs/ad_hoc.py +0 -38
  31. parsl/tests/configs/ad_hoc_cluster_htex.py +0 -35
  32. parsl/tests/configs/htex_ad_hoc_cluster.py +0 -26
  33. parsl/tests/configs/swan_htex.py +0 -43
  34. parsl/tests/integration/test_channels/test_scp_1.py +0 -45
  35. parsl/tests/integration/test_channels/test_ssh_1.py +0 -40
  36. parsl/tests/integration/test_channels/test_ssh_errors.py +0 -46
  37. parsl/tests/integration/test_channels/test_ssh_file_transport.py +0 -41
  38. parsl/tests/integration/test_channels/test_ssh_interactive.py +0 -24
  39. parsl/tests/manual_tests/test_ad_hoc_htex.py +0 -49
  40. parsl/tests/manual_tests/test_oauth_ssh.py +0 -13
  41. parsl/tests/test_mpi_apps/test_mpi_mode_disabled.py +0 -47
  42. {parsl-2024.8.5.data → parsl-2024.8.19.data}/scripts/exec_parsl_function.py +0 -0
  43. {parsl-2024.8.5.data → parsl-2024.8.19.data}/scripts/parsl_coprocess.py +0 -0
  44. {parsl-2024.8.5.data → parsl-2024.8.19.data}/scripts/process_worker_pool.py +0 -0
  45. {parsl-2024.8.5.dist-info → parsl-2024.8.19.dist-info}/LICENSE +0 -0
  46. {parsl-2024.8.5.dist-info → parsl-2024.8.19.dist-info}/WHEEL +0 -0
  47. {parsl-2024.8.5.dist-info → parsl-2024.8.19.dist-info}/entry_points.txt +0 -0
  48. {parsl-2024.8.5.dist-info → parsl-2024.8.19.dist-info}/top_level.txt +0 -0
@@ -8,7 +8,7 @@ parsl/multiprocessing.py,sha256=MyaEcEq-Qf860u7V98u-PZrPNdtzOZL_NW6EhIJnmfQ,1937
8
8
  parsl/process_loggers.py,sha256=uQ7Gd0W72Jz7rrcYlOMfLsAEhkRltxXJL2MgdduJjEw,1136
9
9
  parsl/py.typed,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
10
10
  parsl/utils.py,sha256=91FjQiTUY383ueAjkBAgE21My9nba6SP2a2SrbB1r1Q,11250
11
- parsl/version.py,sha256=Q4Vgcw4p_9D05HbgIMARfR7GS0_NIA80y2iwiXamViY,131
11
+ parsl/version.py,sha256=Cz-5cl59BVU1_SViVhDG0FvWfftidv7huse6Kygyu10,131
12
12
  parsl/app/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
13
13
  parsl/app/app.py,sha256=0gbM4AH2OtFOLsv07I5nglpElcwMSOi-FzdZZfrk7So,8532
14
14
  parsl/app/bash.py,sha256=jm2AvePlCT9DZR7H_4ANDWxatp5dN_22FUlT_gWhZ-g,5528
@@ -17,22 +17,21 @@ parsl/app/futures.py,sha256=XU1NwkoNVsxy3KF5y0Ihsla5hPbhhuSikZInfS7h7Uo,2910
17
17
  parsl/app/python.py,sha256=0hrz2BppVOwwNfh5hnoP70Yv56gSRkIoT-fP9XNb4v4,2331
18
18
  parsl/benchmark/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
19
19
  parsl/benchmark/perf.py,sha256=kKXefDozWXSJKSNA7qdfUgEoacA2-R9kSZcI2YvZ5uE,3096
20
- parsl/channels/__init__.py,sha256=DNFoy_e_vhNTABHVzo4nWilvBYe9W4Na6jj4vYf9El4,371
20
+ parsl/channels/__init__.py,sha256=OEZcuNBOxUwmzrHMZOuPvkw4kUxrbJDA99crDk61O90,131
21
21
  parsl/channels/base.py,sha256=bS43-Qv4VSxa83V6fJ54lNBL_eHCu-Ce7-aoy1C9vCc,4193
22
22
  parsl/channels/errors.py,sha256=Dp0FhtHpygn0IjX8nGurx-WrTJm9aw-Jjz3SSUT-jCc,3283
23
23
  parsl/channels/local/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
24
24
  parsl/channels/local/local.py,sha256=xqH4HnipUN95NgvyB1r33SiqgQKkARgRKmg0_HnumUk,5311
25
25
  parsl/channels/oauth_ssh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
26
- parsl/channels/oauth_ssh/oauth_ssh.py,sha256=GrVOpJ6M6BwtGG4zOU4zakyphzuGY5M3suQ8PyjwyOA,3509
26
+ parsl/channels/oauth_ssh/oauth_ssh.py,sha256=6pj3LQAX89p5Lc8NL1Llq2_noi8GS8BItCuRtDp-iCA,3823
27
27
  parsl/channels/ssh/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
28
- parsl/channels/ssh/ssh.py,sha256=ga8LMZ9ryTZxbgiyljL5DwusYygbUEe-Frt3SBIMecM,10125
28
+ parsl/channels/ssh/ssh.py,sha256=3PfE3qYQOCr-BZrCseGiMKYFUILFPmW_CgvV63CWI4M,10494
29
29
  parsl/channels/ssh_il/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
30
- parsl/channels/ssh_il/ssh_il.py,sha256=5XjotlA83UM4zGfnVriC9pE2NzaCT5hqvXZ9v4GG3pg,2410
30
+ parsl/channels/ssh_il/ssh_il.py,sha256=acOXJyqCmgC2nl7zrO_uEu3GpJZMN2l-Af5XfmNMLRs,2783
31
31
  parsl/concurrent/__init__.py,sha256=TvIVceJYaJAsxedNBF3Vdo9lEQNHH_j3uxJv0zUjP7w,3288
32
32
  parsl/configs/ASPIRE1.py,sha256=eKnmz0QD3V522emtXMjS6Ppeooe5lzcBgCE6cxunbYY,1718
33
33
  parsl/configs/Azure.py,sha256=CJms3xWmdb-S3CksbHrPF2TfMxJC5I0faqUKCOzVg0k,1268
34
34
  parsl/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
35
- parsl/configs/ad_hoc.py,sha256=Gwnehd5_K6IzUSPECHnNBljyO-LQ9fyaBClHiT_myp8,1352
36
35
  parsl/configs/bridges.py,sha256=NsTvCiHZHbJj-BsOXOpgS4hCblCHW_lnMa_VMb3SIww,1523
37
36
  parsl/configs/cc_in2p3.py,sha256=T9PjUt2OFFv3w2uXFeKfIDmE7j_nllD3jVouvCmPrCc,785
38
37
  parsl/configs/ec2.py,sha256=5xtlZI4Fc558sYXdM4nQQvQDBNPdzhRRCO14F-8H7Y4,944
@@ -62,7 +61,7 @@ parsl/data_provider/staging.py,sha256=ZDZuuFg38pjUStegKPcvPsfGp3iMeReMzfU6DSwtJj
62
61
  parsl/data_provider/zip.py,sha256=S4kVuH9lxAegRURYbvIUR7EYYBOccyslaqyCrVWUBhw,4497
63
62
  parsl/dataflow/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
64
63
  parsl/dataflow/dependency_resolvers.py,sha256=Om8Dgh7a0ZwgXAc6TlhxLSzvxXHDlNNV1aBNiD3JTNY,3325
65
- parsl/dataflow/dflow.py,sha256=StuwMnBoZQBkIthWY1O1QU1LDYEHbvtMJZYn4G0I5hc,68263
64
+ parsl/dataflow/dflow.py,sha256=2RV4MmQ3y6iwOT7aJaeWMsVPJ6tFT03V0YAcUbxogpk,68250
66
65
  parsl/dataflow/errors.py,sha256=9SxVhIJY_53FQx8x4OU8UA8nd7lvUbDllH7KfMXpYaY,2177
67
66
  parsl/dataflow/futures.py,sha256=08LuP-HFiHBIZmeKCjlsazw_WpQ5fwevrU2_WbidkYw,6080
68
67
  parsl/dataflow/memoization.py,sha256=l9uw1Bu50GucBF70M5relpGKFkE4dIM9T3R1KrxW0v0,9583
@@ -80,13 +79,13 @@ parsl/executors/flux/executor.py,sha256=8_xakLUu5zNJAHL0LbeTCFEWqWzRK1eE-3ep4GII
80
79
  parsl/executors/flux/flux_instance_manager.py,sha256=5T3Rp7ZM-mlT0Pf0Gxgs5_YmnaPrSF9ec7zvRfLfYJw,2129
81
80
  parsl/executors/high_throughput/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
82
81
  parsl/executors/high_throughput/errors.py,sha256=Sak8e8UpiEcXefUjMHbhyXc4Rn7kJtOoh7L8wreBQdk,1638
83
- parsl/executors/high_throughput/executor.py,sha256=nCCLGjMFIYGHir5CYqRqrznQky_K3UWNKVPk4aT5w-s,38165
84
- parsl/executors/high_throughput/interchange.py,sha256=uWYg8NYMmeIxgyVCy1MuY56P3lrbxSSOO9pVoIjRwbo,30996
82
+ parsl/executors/high_throughput/executor.py,sha256=f6xHuDRklecrxz9luqERyuNpfBXJi0erSd0EuDwQnNQ,37770
83
+ parsl/executors/high_throughput/interchange.py,sha256=upaJht6YnqvJqVF1Ub7GEyRFDtw1v19d0JmCWNXsi6k,31094
85
84
  parsl/executors/high_throughput/manager_record.py,sha256=yn3L8TUJFkgm2lX1x0SeS9mkvJowC0s2VIMCFiU7ThM,455
86
85
  parsl/executors/high_throughput/manager_selector.py,sha256=uRaEtcbDO2vXf8vjEcm7bfZVdeUlSPTRc3G4oFRO29M,820
87
86
  parsl/executors/high_throughput/monitoring_info.py,sha256=HC0drp6nlXQpAop5PTUKNjdXMgtZVvrBL0JzZJebPP4,298
88
- parsl/executors/high_throughput/mpi_executor.py,sha256=V07t1GOzFhcwdlZGuYUPqc1NarSr-vUbsNzbK4Cj0m8,3882
89
- parsl/executors/high_throughput/mpi_prefix_composer.py,sha256=hah_IznfFqk-rzuHWmg6aiF_saiDRrpW-aSo4kH9Nso,4854
87
+ parsl/executors/high_throughput/mpi_executor.py,sha256=khvGz56A8zU8XAY-R4TtqqiJB8B10mkVTXD_9xtrXgo,4696
88
+ parsl/executors/high_throughput/mpi_prefix_composer.py,sha256=XQAv9MH7pl5rCUOVw1x8qB64n8iT1-smiVLTBSB1Ro0,4878
90
89
  parsl/executors/high_throughput/mpi_resource_management.py,sha256=LFBbJ3BnzTcY_v-jNu30uoIB2Enk4cleN4ygY3dncjY,8194
91
90
  parsl/executors/high_throughput/probe.py,sha256=TNpGTXb4_DEeg_h-LHu4zEKi1-hffboxvKcZUl2OZGk,2751
92
91
  parsl/executors/high_throughput/process_worker_pool.py,sha256=3s-Ouo3ZEhod7hon8euyL37t1DbP5pSVjXyC23DSN_0,43075
@@ -98,7 +97,7 @@ parsl/executors/radical/rpex_worker.py,sha256=qli6i6ejKubTSv3lAE3YiW8RlkHrfl4Jhr
98
97
  parsl/executors/taskvine/__init__.py,sha256=9rwp3M8B0YyEhZMLO0RHaNw7u1nc01WHbXLqnBTanu0,293
99
98
  parsl/executors/taskvine/errors.py,sha256=euIYkSslrNSI85kyi2s0xzOaO9ik4c1fYHstMIeiBJk,652
100
99
  parsl/executors/taskvine/exec_parsl_function.py,sha256=ftGdJU78lKPPkphSHlEi4rj164mhuMHJjghVqfgeXKk,7085
101
- parsl/executors/taskvine/executor.py,sha256=XsUzFWgFWbxf06jDLMAKiXUF-F1_VLheZ5jhAwSphZk,30977
100
+ parsl/executors/taskvine/executor.py,sha256=yODov_9LNyuxJga2Ki-fp1WEHwDcwNsLIBaqP8bAvfw,31056
102
101
  parsl/executors/taskvine/factory.py,sha256=rWpEoFphLzqO3HEYyDEbQa14iyvgkdZg7hLZuaY39gQ,2638
103
102
  parsl/executors/taskvine/factory_config.py,sha256=AbE2fN2snrF5ITYrrS4DnGn2XkJHUFr_17DYHDHIwq0,3693
104
103
  parsl/executors/taskvine/manager.py,sha256=fwRSgYWpbsnr5jXlzvX0sQjOqryqn_77K_svJJ1HJ2U,25631
@@ -107,7 +106,7 @@ parsl/executors/taskvine/utils.py,sha256=iSrIogeiauL3UNy_9tiZp1cBSNn6fIJkMYQRVi1
107
106
  parsl/executors/workqueue/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
108
107
  parsl/executors/workqueue/errors.py,sha256=XO2naYhAsHHyiOBH6hpObg3mPNDmvMoFqErsj0-v7jc,541
109
108
  parsl/executors/workqueue/exec_parsl_function.py,sha256=RUkJ4JSJAjr7YyRZ58zhMdg8cR5dVV9odUl3AuzNf3k,7802
110
- parsl/executors/workqueue/executor.py,sha256=YaY_U5DxXU2NbswmlrcJ2BtXvSbV0ElM9ZlQzP_F_BU,49803
109
+ parsl/executors/workqueue/executor.py,sha256=aS864cpAvWQeW6hDqOtX_aUa1YnXsPcemuiVMq51pys,49840
111
110
  parsl/executors/workqueue/parsl_coprocess.py,sha256=cF1UmTgVLoey6QzBcbYgEiEsRidSaFfuO54f1HFw_EM,5737
112
111
  parsl/executors/workqueue/parsl_coprocess_stub.py,sha256=_bJmpPIgL42qM6bVzeEKt1Mn1trSP41rtJguXxPGfHI,735
113
112
  parsl/jobs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -121,13 +120,13 @@ parsl/launchers/base.py,sha256=CblcvPTJiu-MNLWaRtFe29SZQ0BpTOlaY8CGcHdlHIE,538
121
120
  parsl/launchers/errors.py,sha256=8YMV_CHpBNVa4eXkGE4x5DaFQlZkDCRCHmBktYcY6TA,467
122
121
  parsl/launchers/launchers.py,sha256=VB--fiVv_IQne3DydTMSdGUY0o0g69puAs-Hd3mJ2vo,15464
123
122
  parsl/monitoring/__init__.py,sha256=0ywNz6i0lM1xo_7_BIxhETDGeVd2C_0wwD7qgeaMR4c,83
124
- parsl/monitoring/db_manager.py,sha256=qPdW_MINycSn6MxxFk2s_R-t8g1cbJhxncVR5mDgeGs,37011
123
+ parsl/monitoring/db_manager.py,sha256=IXaSIw3k-ij-dS78gnFYrXEHy9fBW1v8Cg2hcV3Erm0,35413
125
124
  parsl/monitoring/errors.py,sha256=D6jpYzEzp0d6FmVKGqhvjAxr4ztZfJX2s-aXemH9bBU,148
126
125
  parsl/monitoring/message_type.py,sha256=Khn88afNxcOIciKiCK4GLnn90I5BlRTiOL3zK-P07yQ,401
127
- parsl/monitoring/monitoring.py,sha256=Sr1PIue0ZzBSBbbLDnT477iRNecizt8CVh7easaLGsY,13601
126
+ parsl/monitoring/monitoring.py,sha256=KtUAu9qQqHHGutfDFTL6-8z7qC7ZuWt2XCza5NBzHWg,13862
128
127
  parsl/monitoring/radios.py,sha256=cHdpBOW1ITYvFnOgYjziuZOauq8p7mlSBOvcbIP78mg,6437
129
- parsl/monitoring/remote.py,sha256=qH1N3My8F473CHKxFrA2CsaL0Uege26tQi9-KrWQrr4,13771
130
- parsl/monitoring/router.py,sha256=Gn8nzgGABlN-048c3bJqAojd2umnIqcTe17Mq-XnCgI,11423
128
+ parsl/monitoring/remote.py,sha256=avIWMvejN0LeIXpt_RCXJxGLbsXhapUab2rS5Tmjca4,13739
129
+ parsl/monitoring/router.py,sha256=IfyhBqcFJE7RazyH3UjkFBZr-HdJXKzS_IIdaYkuPZs,10993
131
130
  parsl/monitoring/types.py,sha256=_WGizCTgQVOkJ2dvNfsvHpYBj21Ky3bJsmyIskIx10I,631
132
131
  parsl/monitoring/queries/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
133
132
  parsl/monitoring/queries/pandas.py,sha256=0Z2r0rjTKCemf0eaDkF1irvVHn5g7KC5SYETvQPRxwU,2232
@@ -152,12 +151,12 @@ parsl/monitoring/visualization/templates/resource_usage.html,sha256=__QEaAPdO8kz
152
151
  parsl/monitoring/visualization/templates/task.html,sha256=omDwp7zFXHVtuGsUCXcB7xLAsAW0Vrjd1b-wFZj9y70,2803
153
152
  parsl/monitoring/visualization/templates/workflow.html,sha256=QCSHAPHK_2C3gNcZ3NmChLFG6xuchZEjT_iLQ3wwXmk,1871
154
153
  parsl/monitoring/visualization/templates/workflows_summary.html,sha256=7brKKNsxcT4z-l10BKJlgTxQtGL033ZS5jEDdSmsPEE,891
155
- parsl/providers/__init__.py,sha256=Qg42K_r9tiwtUA4YK74L1IPg9ffsH-PoefnbF-gBfNo,1185
154
+ parsl/providers/__init__.py,sha256=fvmVlu4aHw796K-fuUqxCHdK8KhrQviMARSmUQl1XXs,1077
156
155
  parsl/providers/base.py,sha256=u8oGlAaDfh15EgOJNJF1aZUy0Ou-UW6UY0b7ZI7Ecjo,5702
157
156
  parsl/providers/cluster_provider.py,sha256=o75wJHHyZkecjEBhGGBCMUQ1JlsecAhAKxX_Qd2pyg8,4668
158
157
  parsl/providers/errors.py,sha256=_CbCmpguzcA81SC5dPLkDZs1AShzacGKttNhuzNBeiQ,2270
159
158
  parsl/providers/ad_hoc/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
160
- parsl/providers/ad_hoc/ad_hoc.py,sha256=jADPUEp_zVj2mijlDYdPD9Zkqj2l0uspJxVRxQ-9xvk,8302
159
+ parsl/providers/ad_hoc/ad_hoc.py,sha256=NPZRJnVYT7IB2TCLThofcB7g0WZqgT_N0hDs3K86zhE,8466
161
160
  parsl/providers/aws/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
162
161
  parsl/providers/aws/aws.py,sha256=nS899gamCAhiIY-4zwaEToa7Om73PrAz4dvX5YSEkUQ,28985
163
162
  parsl/providers/aws/template.py,sha256=N7OEpp7YP6CK5RUtLOwFnks7AE2UG5hHXddh8FF0BFs,347
@@ -209,7 +208,6 @@ parsl/tests/test_summary.py,sha256=x1RfWCFLzHjBw2ukwoRZPW1LFCKiwDmxx86ES-6yGRA,5
209
208
  parsl/tests/test_thread_parallelism.py,sha256=TVNeQ1NkUhaf3YbbzUSH-ozFFdX_GbX-5ygommjVxvc,1653
210
209
  parsl/tests/utils.py,sha256=YqUlBTj2UoAFVKVdLKh-1Y6MQM_ZSHPJOQ4GfQvFXyk,110
211
210
  parsl/tests/configs/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
212
- parsl/tests/configs/ad_hoc_cluster_htex.py,sha256=twCY2ppy1M7EpPkwVC-8oboaiSwqNBrQV0noFBWPMJ0,1301
213
211
  parsl/tests/configs/azure_single_node.py,sha256=iX99_MCPkInOzByB5QRYYBSbWDhFaTcA7CkJk9DreuU,1729
214
212
  parsl/tests/configs/bluewaters.py,sha256=SyCQ99Iih6sYjJVLj5C-AzUqff8vowP113ZC8JHDc24,1370
215
213
  parsl/tests/configs/bridges.py,sha256=WqMa340ZEXRmwgY7oe6QjJnUMO3Y3vAfKngg0XNyVRI,1602
@@ -220,12 +218,11 @@ parsl/tests/configs/ec2_single_node.py,sha256=rK9AfMf4C84CXMhS5nhgHA_dNG2An7Yiq2
220
218
  parsl/tests/configs/ec2_spot.py,sha256=NKDCKgKxYNOHGVLBl2DFfiUwkR6xQnyhNb_E04TBs28,1253
221
219
  parsl/tests/configs/flux_local.py,sha256=xliKQfB5FFpfNHWYEHoA8FKOTVHFCXVhWNuKQ5VJNTk,182
222
220
  parsl/tests/configs/frontera.py,sha256=VXaRcvsi9ZjqJHi71BbKXSJBuQXdhCzPxXKW7H3LRBI,1567
223
- parsl/tests/configs/htex_ad_hoc_cluster.py,sha256=Nr5ZVs4kVvX2UbRk8j9VW6xYGf9SR43SvodkU8RVWEQ,944
224
221
  parsl/tests/configs/htex_local.py,sha256=o7Lxz1nErHpLNcH7vEEy9KyCNiEf6r3gpCrBmdQbh94,719
225
222
  parsl/tests/configs/htex_local_alternate.py,sha256=CnEfKbt1nnGYwKVICA2tmyqDNH0GP9pFLao2bNXGRHI,2510
226
223
  parsl/tests/configs/htex_local_intask_staging.py,sha256=E7uZD_AIAbxavkw4VrVXlGG7k42YJZv2qluAO-W0VvI,886
227
224
  parsl/tests/configs/htex_local_rsync_staging.py,sha256=cqTRcHLjqYnOL07Lb8ecTzQuzP-dWDpWdKhgtTwo-fU,940
228
- parsl/tests/configs/local_adhoc.py,sha256=a4veilmLBG7UaBvhOaEXY9euYOFWgg9ZqWgG1786Jsw,475
225
+ parsl/tests/configs/local_adhoc.py,sha256=jlyDwwIm0uVuyDgKZCb3wa3k0IaqcYT0ErMhu_0N26s,509
229
226
  parsl/tests/configs/local_radical.py,sha256=C70I6ssfaaHEY1MMCC77izpp6sdANALH-P2mDR2msN0,417
230
227
  parsl/tests/configs/local_radical_mpi.py,sha256=5OabeXXJPE0fyiA1AlGcQYoPRjQRk-HNA-xPLTFyAr4,532
231
228
  parsl/tests/configs/local_threads.py,sha256=oEnQSlom_JMLFX9_Ln49JAfOP3nSMbw8gTaDJo_NYfo,202
@@ -243,7 +240,6 @@ parsl/tests/configs/nscc_singapore.py,sha256=ECENZcBuCjkY6OWZstEMhfMrmjRmjCc7ELd
243
240
  parsl/tests/configs/osg_htex.py,sha256=x-C_r7Kpwvqroc4Ay1Yaya9K6_j7IU1ywqPegBU7HKI,1371
244
241
  parsl/tests/configs/petrelkube.py,sha256=uUxrZrD_cF-_t6ytlRA_MUtw8RQbpW0CmNRbw3mWs1o,1699
245
242
  parsl/tests/configs/summit.py,sha256=0LbuTVmc8nl2eGiqAayhV0RCx0pg5kUpYhz9LvTFhDo,1378
246
- parsl/tests/configs/swan_htex.py,sha256=WEICoOrYWJKlium7R52TRHJ6Env_KVhKE2kbgu2ZJD8,1501
247
243
  parsl/tests/configs/taskvine_ex.py,sha256=Nsovxtb59q6ta2opGrl7ufWcavYQtzSPrscLmaLYkUU,472
248
244
  parsl/tests/configs/theta.py,sha256=bkwcFcZYSkJOfLdcPHiAN2BRRGz3nLTaPylvdm3dcJ8,1298
249
245
  parsl/tests/configs/user_opts.py,sha256=fNO1OxISFPP7IyJ_iwf8dQ6EagVr2StXtOWmGnA9MeI,6265
@@ -255,22 +251,15 @@ parsl/tests/integration/test_apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeR
255
251
  parsl/tests/integration/test_channels/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
256
252
  parsl/tests/integration/test_channels/test_channels.py,sha256=Nv_1ljrJ5Miqe4U5q9XPBqc0YZbJC90TIsH0p3203Gs,323
257
253
  parsl/tests/integration/test_channels/test_local_channel.py,sha256=_j9z4LqdfawEQRlae6EHpMtrhMPMapbIlJwoHEibAuE,1009
258
- parsl/tests/integration/test_channels/test_scp_1.py,sha256=K7KWTeiZULBBydbvfmBzvRm7KM7nlkZn_O2-v5D5yY4,1014
259
- parsl/tests/integration/test_channels/test_ssh_1.py,sha256=5HQehVteKCPXFt4V3W2YXgGvDm0sKP2MmJC0TCnJUbs,933
260
- parsl/tests/integration/test_channels/test_ssh_errors.py,sha256=VKaNZAbXr7uv8EhG7FIVm8Veq2WnMJ2Jel7A3t5v_dQ,1279
261
- parsl/tests/integration/test_channels/test_ssh_file_transport.py,sha256=9cBi7CPzM-4NxsCW3VfmRWgOvOb-mk8hpH187clScvc,904
262
- parsl/tests/integration/test_channels/test_ssh_interactive.py,sha256=voUAR21RZD0c9fPDfAN9PZiiZw58qk_hxC92LL10VSA,568
263
254
  parsl/tests/integration/test_stress/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
264
255
  parsl/tests/integration/test_stress/test_python_simple.py,sha256=QZMhi6E0OmMsKi3QkHJZdNpALSrWshrLcKsstLANUWE,1007
265
256
  parsl/tests/integration/test_stress/test_python_threads.py,sha256=-4dW-g69cu6uhSvk5HiH0fI6ceckQNqUXZGvNK6QGq4,897
266
257
  parsl/tests/manual_tests/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
267
258
  parsl/tests/manual_tests/htex_local.py,sha256=6bbnCPy7t_sJUrvDXiLB97joP8UWGjAdEs4aRP6PkFQ,820
268
- parsl/tests/manual_tests/test_ad_hoc_htex.py,sha256=CPBzPd21GwKlz5jbHCipPepc3v0ZFiTdQCR8pAwlxkQ,1255
269
259
  parsl/tests/manual_tests/test_basic.py,sha256=3uCS9BqaZmKTNtNfJSsJIg2exlTAdC0Sdc1w9hY9Tvc,4023
270
260
  parsl/tests/manual_tests/test_fan_in_out_htex_remote.py,sha256=j9GkGwV7sP8ytIz4L7usuVacvBfFyIm-lq9F74KO85o,2422
271
261
  parsl/tests/manual_tests/test_log_filter.py,sha256=jwKclAVuESdlGK_giBuHDkY6ryX6rZB7q01lXT5K0XU,1872
272
262
  parsl/tests/manual_tests/test_memory_limits.py,sha256=XGV_YmIeiGMt1HWYS0Zxo-XkVoKsvHhl11_U3MTg1KI,2677
273
- parsl/tests/manual_tests/test_oauth_ssh.py,sha256=v7msnSS5ywrWl7oqB_gR72oU2owrpzxaQ4vBt9C8pxI,337
274
263
  parsl/tests/manual_tests/test_regression_220.py,sha256=Jo2puWt1W0r1rJfaJFgd2ZPgR3i6uOXzrLRcfYDZWDo,931
275
264
  parsl/tests/manual_tests/test_udp_simple.py,sha256=VyEbE3G5pcRjzbdUbQlL0BHiilfOsNsbbLOJghU7n84,1037
276
265
  parsl/tests/manual_tests/test_worker_count.py,sha256=Cv8nAWMXAREiiGEBUr_8JyI87ffp8JGAyDqVXzcjX_0,2072
@@ -352,8 +341,9 @@ parsl/tests/test_htex/test_manager_failure.py,sha256=N-obuSZ8f7XA_XcddoN2LWKSVtp
352
341
  parsl/tests/test_htex/test_managers_command.py,sha256=Y-eUjtBzwW9erCYdph9bOesbkUvX8QUPqXt27DCgVS8,951
353
342
  parsl/tests/test_htex/test_missing_worker.py,sha256=gyp5i7_t-JHyJGtz_eXZKKBY5w8oqLOIxO6cJgGJMtQ,745
354
343
  parsl/tests/test_htex/test_multiple_disconnected_blocks.py,sha256=Axn8us43dA722O4PWdqxCJM5f_vinZqjFT1WAEvC_ZM,1995
344
+ parsl/tests/test_htex/test_resource_spec_validation.py,sha256=k1zQ--46bCyhOnt2UTaYnSh0I2UhwX747ISAfy8xPvk,952
355
345
  parsl/tests/test_htex/test_worker_failure.py,sha256=Uz-RHI-LK78FMjXUvrUFmo4iYfmpDVBUcBxxRb3UG9M,603
356
- parsl/tests/test_htex/test_zmq_binding.py,sha256=BLXJC45qKb8cWbiSJpnzoRI9s0CCmLb1Ex3s92ycanw,3905
346
+ parsl/tests/test_htex/test_zmq_binding.py,sha256=Bq1HHuMxBE_AcaP1VZ-RqE4euCHO__Du05b2UZ5H1RA,3950
357
347
  parsl/tests/test_monitoring/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
358
348
  parsl/tests/test_monitoring/test_app_names.py,sha256=ayyxySGWpKSe9dDw2UeJo1dicxjpALRuLsJfprZV4Eg,2174
359
349
  parsl/tests/test_monitoring/test_basic.py,sha256=nQERwVH56CjrKc_YSsMxH5UziJDqN2357Vhyd0brbRU,4177
@@ -365,16 +355,15 @@ parsl/tests/test_monitoring/test_memoization_representation.py,sha256=dknv2nO7pN
365
355
  parsl/tests/test_monitoring/test_stdouterr.py,sha256=9FQSfiaMrOpoSwravZuEwmdgUgI7iG0TPRucsYC_NJA,4498
366
356
  parsl/tests/test_monitoring/test_viz_colouring.py,sha256=83Qdmn3gM0j7IL6kPDcuIsp_nl4zj-liPijyIN632SY,592
367
357
  parsl/tests/test_mpi_apps/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
368
- parsl/tests/test_mpi_apps/test_bad_mpi_config.py,sha256=K5TJVTiIAhaZqSD4m25ZAsMLgN8vrBhqT5TSkvnkCOU,1029
369
- parsl/tests/test_mpi_apps/test_mpi_mode_disabled.py,sha256=Wg3TZE1eF5U3XVGtsCCttxZhmZrf89M0rKwLqmQ92aU,1266
370
- parsl/tests/test_mpi_apps/test_mpi_mode_enabled.py,sha256=pV-htWmPNyY7XKN4Qo-twLmH-qreCgFlYwokgZbTS_g,5304
358
+ parsl/tests/test_mpi_apps/test_bad_mpi_config.py,sha256=QKvEUSrHIBrvqu2fRj1MAqxsYxDfcrdQ7dzWdOZejuU,1320
359
+ parsl/tests/test_mpi_apps/test_mpi_mode_enabled.py,sha256=9RaRgfweywYvcrTvteJXJwt_RSiyWSjBgii5LCnisJg,5461
371
360
  parsl/tests/test_mpi_apps/test_mpi_prefix.py,sha256=yJslZvYK3JeL9UgxMwF9DDPR9QD4zJLGVjubD0F-utc,1950
372
361
  parsl/tests/test_mpi_apps/test_mpi_scheduler.py,sha256=YdV8A-m67DHk9wxgNpj69wwGEKrFGL20KAC1TzLke3c,6332
373
- parsl/tests/test_mpi_apps/test_mpiex.py,sha256=U4Djvzsf_oKgtxL6HXBxxEzrHiYVw2dQBpDgbGlMffU,2052
374
- parsl/tests/test_mpi_apps/test_resource_spec.py,sha256=A7NwNT4LalCSOiHws1ALrrWy8Mn1IItpv9olhnRVjs0,3987
362
+ parsl/tests/test_mpi_apps/test_mpiex.py,sha256=N44sOaTOMchmZ3bI_w5h2mjOnS0sGFq8IqzIOpF0MMI,2036
363
+ parsl/tests/test_mpi_apps/test_resource_spec.py,sha256=aJo_1Nr0t-5pzw_rpDWEVp41RcICWG9sAeFUFXXJoW8,3828
375
364
  parsl/tests/test_providers/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
376
365
  parsl/tests/test_providers/test_cobalt_deprecation_warning.py,sha256=UN2W6xJxuLx2euPqArORKFEU2VXez9_PYqq-0rZHanQ,391
377
- parsl/tests/test_providers/test_local_provider.py,sha256=XCAy64oM3IZ6k0RYBIr6s-D2LL7gr6_xXZ_3Pv1D0gM,7076
366
+ parsl/tests/test_providers/test_local_provider.py,sha256=R96E1eWgHVkvOQ1Au9wj-gfdWKAqGc-qlygFuxpGFQ8,7160
378
367
  parsl/tests/test_providers/test_pbspro_template.py,sha256=-bi1vags9yyNfpBxtjTqFjzMIg1VVPyf2M958UcXWmA,855
379
368
  parsl/tests/test_providers/test_slurm_instantiate.py,sha256=eW3pEZRIzZO1-eKFrBc7N5uoN5otwghgbqut74Kyqoc,500
380
369
  parsl/tests/test_providers/test_slurm_template.py,sha256=pBEeimO-vGbMmC1QT7BP7s5BH6fFeqaWnI4f6tWPFEo,901
@@ -470,13 +459,13 @@ parsl/usage_tracking/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hS
470
459
  parsl/usage_tracking/api.py,sha256=iaCY58Dc5J4UM7_dJzEEs871P1p1HdxBMtNGyVdzc9g,1821
471
460
  parsl/usage_tracking/levels.py,sha256=xbfzYEsd55KiZJ-mzNgPebvOH4rRHum04hROzEf41tU,291
472
461
  parsl/usage_tracking/usage.py,sha256=qNEJ7nPimqd3Y7OWFLdYmNwJ6XDKlyfV_fTzasxsQw8,8690
473
- parsl-2024.8.5.data/scripts/exec_parsl_function.py,sha256=RUkJ4JSJAjr7YyRZ58zhMdg8cR5dVV9odUl3AuzNf3k,7802
474
- parsl-2024.8.5.data/scripts/interchange.py,sha256=47m763R5OTuaWDRPP9JNt4HWWQxgUa_VLGKG3Xy5Jwc,30983
475
- parsl-2024.8.5.data/scripts/parsl_coprocess.py,sha256=zrVjEqQvFOHxsLufPi00xzMONagjVwLZbavPM7bbjK4,5722
476
- parsl-2024.8.5.data/scripts/process_worker_pool.py,sha256=78QKnV5KbY_vcteC6k60gpDE4wEk6hsciet_qzs9QoU,43061
477
- parsl-2024.8.5.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
478
- parsl-2024.8.5.dist-info/METADATA,sha256=eYZYIdlSdAFvNsgCxzT0xhDvv8Snm02H-7u08RjiSSM,4044
479
- parsl-2024.8.5.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
480
- parsl-2024.8.5.dist-info/entry_points.txt,sha256=XqnsWDYoEcLbsMcpnYGKLEnSBmaIe1YoM5YsBdJG2tI,176
481
- parsl-2024.8.5.dist-info/top_level.txt,sha256=PIheYoUFQtF2icLsgOykgU-Cjuwr2Oi6On2jo5RYgRM,6
482
- parsl-2024.8.5.dist-info/RECORD,,
462
+ parsl-2024.8.19.data/scripts/exec_parsl_function.py,sha256=RUkJ4JSJAjr7YyRZ58zhMdg8cR5dVV9odUl3AuzNf3k,7802
463
+ parsl-2024.8.19.data/scripts/interchange.py,sha256=Gl9h3_MN4Ux2FJZxd2ObfTSZ5T1INYQDhU_bYFezbkE,31081
464
+ parsl-2024.8.19.data/scripts/parsl_coprocess.py,sha256=zrVjEqQvFOHxsLufPi00xzMONagjVwLZbavPM7bbjK4,5722
465
+ parsl-2024.8.19.data/scripts/process_worker_pool.py,sha256=78QKnV5KbY_vcteC6k60gpDE4wEk6hsciet_qzs9QoU,43061
466
+ parsl-2024.8.19.dist-info/LICENSE,sha256=tAkwu8-AdEyGxGoSvJ2gVmQdcicWw3j1ZZueVV74M-E,11357
467
+ parsl-2024.8.19.dist-info/METADATA,sha256=n80gYJIibw3jBmu-BWOnzdedi6iNvsITxO4Zi2rnEmc,4121
468
+ parsl-2024.8.19.dist-info/WHEEL,sha256=eOLhNAGa2EW3wWl_TU484h7q1UNgy0JXjjoqKoxAAQc,92
469
+ parsl-2024.8.19.dist-info/entry_points.txt,sha256=XqnsWDYoEcLbsMcpnYGKLEnSBmaIe1YoM5YsBdJG2tI,176
470
+ parsl-2024.8.19.dist-info/top_level.txt,sha256=PIheYoUFQtF2icLsgOykgU-Cjuwr2Oi6On2jo5RYgRM,6
471
+ parsl-2024.8.19.dist-info/RECORD,,
parsl/configs/ad_hoc.py DELETED
@@ -1,38 +0,0 @@
1
- from typing import Any, Dict
2
-
3
- from parsl.channels import SSHChannel
4
- from parsl.config import Config
5
- from parsl.executors import HighThroughputExecutor
6
- from parsl.providers import AdHocProvider
7
- from parsl.usage_tracking.levels import LEVEL_1
8
-
9
- user_opts: Dict[str, Dict[str, Any]]
10
- user_opts = {'adhoc':
11
- {'username': 'YOUR_USERNAME',
12
- 'script_dir': 'YOUR_SCRIPT_DIR',
13
- 'remote_hostnames': ['REMOTE_HOST_URL_1', 'REMOTE_HOST_URL_2']
14
- }
15
- }
16
-
17
-
18
- config = Config(
19
- executors=[
20
- HighThroughputExecutor(
21
- label='remote_htex',
22
- max_workers_per_node=2,
23
- worker_logdir_root=user_opts['adhoc']['script_dir'],
24
- provider=AdHocProvider(
25
- # Command to be run before starting a worker, such as:
26
- # 'module load Anaconda; source activate parsl_env'.
27
- worker_init='',
28
- channels=[SSHChannel(hostname=m,
29
- username=user_opts['adhoc']['username'],
30
- script_dir=user_opts['adhoc']['script_dir'],
31
- ) for m in user_opts['adhoc']['remote_hostnames']]
32
- )
33
- )
34
- ],
35
- # AdHoc Clusters should not be setup with scaling strategy.
36
- strategy='none',
37
- usage_tracking=LEVEL_1,
38
- )
@@ -1,35 +0,0 @@
1
- from typing import Any, Dict
2
-
3
- from parsl.channels import SSHChannel
4
- from parsl.config import Config
5
- from parsl.executors import HighThroughputExecutor
6
- from parsl.providers import AdHocProvider
7
-
8
- user_opts = {'adhoc':
9
- {'username': 'YOUR_USERNAME',
10
- 'script_dir': 'YOUR_SCRIPT_DIR',
11
- 'remote_hostnames': ['REMOTE_HOST_URL_1', 'REMOTE_HOST_URL_2']
12
- }
13
- } # type: Dict[str, Dict[str, Any]]
14
-
15
- config = Config(
16
- executors=[
17
- HighThroughputExecutor(
18
- label='remote_htex',
19
- max_workers_per_node=2,
20
- worker_logdir_root=user_opts['adhoc']['script_dir'],
21
- encrypted=True,
22
- provider=AdHocProvider(
23
- # Command to be run before starting a worker, such as:
24
- # 'module load Anaconda; source activate parsl_env'.
25
- worker_init='',
26
- channels=[SSHChannel(hostname=m,
27
- username=user_opts['adhoc']['username'],
28
- script_dir=user_opts['adhoc']['script_dir'],
29
- ) for m in user_opts['adhoc']['remote_hostnames']]
30
- )
31
- )
32
- ],
33
- # AdHoc Clusters should not be setup with scaling strategy.
34
- strategy='none',
35
- )
@@ -1,26 +0,0 @@
1
- from parsl.channels import SSHChannel
2
- from parsl.config import Config
3
- from parsl.executors import HighThroughputExecutor
4
- from parsl.providers import AdHocProvider
5
- from parsl.tests.configs.user_opts import user_opts
6
-
7
- config = Config(
8
- executors=[
9
- HighThroughputExecutor(
10
- label='remote_htex',
11
- cores_per_worker=1,
12
- worker_debug=False,
13
- address=user_opts['public_ip'],
14
- encrypted=True,
15
- provider=AdHocProvider(
16
- move_files=False,
17
- parallelism=1,
18
- worker_init=user_opts['adhoc']['worker_init'],
19
- channels=[SSHChannel(hostname=m,
20
- username=user_opts['adhoc']['username'],
21
- script_dir=user_opts['adhoc']['script_dir'],
22
- ) for m in user_opts['adhoc']['remote_hostnames']]
23
- )
24
- )
25
- ],
26
- )
@@ -1,43 +0,0 @@
1
- """
2
- ================== Block
3
- | ++++++++++++++ | Node
4
- | | | |
5
- | | Task | | . . .
6
- | | | |
7
- | ++++++++++++++ |
8
- ==================
9
- """
10
- from parsl.channels import SSHChannel
11
- from parsl.config import Config
12
- from parsl.executors import HighThroughputExecutor
13
- from parsl.launchers import AprunLauncher
14
- from parsl.providers import TorqueProvider
15
-
16
- # If you are a developer running tests, make sure to update parsl/tests/configs/user_opts.py
17
- # If you are a user copying-and-pasting this as an example, make sure to either
18
- # 1) create a local `user_opts.py`, or
19
- # 2) delete the user_opts import below and replace all appearances of `user_opts` with the literal value
20
- # (i.e., user_opts['swan']['username'] -> 'your_username')
21
- from .user_opts import user_opts
22
-
23
- config = Config(
24
- executors=[
25
- HighThroughputExecutor(
26
- label='swan_htex',
27
- encrypted=True,
28
- provider=TorqueProvider(
29
- channel=SSHChannel(
30
- hostname='swan.cray.com',
31
- username=user_opts['swan']['username'],
32
- script_dir=user_opts['swan']['script_dir'],
33
- ),
34
- nodes_per_block=1,
35
- init_blocks=1,
36
- max_blocks=1,
37
- launcher=AprunLauncher(),
38
- scheduler_options=user_opts['swan']['scheduler_options'],
39
- worker_init=user_opts['swan']['worker_init'],
40
- ),
41
- )
42
- ]
43
- )
@@ -1,45 +0,0 @@
1
- import os
2
-
3
- from parsl.channels.ssh.ssh import SSHChannel as SSH
4
-
5
-
6
- def connect_and_list(hostname, username):
7
- out = ''
8
- conn = SSH(hostname, username=username)
9
- conn.push_file(os.path.abspath('remote_run.sh'), '/home/davidk/')
10
- # ec, out, err = conn.execute_wait("ls /tmp/remote_run.sh; bash /tmp/remote_run.sh")
11
- conn.close()
12
- return out
13
-
14
-
15
- script = '''#!/bin/bash
16
- echo "Hostname: $HOSTNAME"
17
- echo "Cpu info -----"
18
- cat /proc/cpuinfo
19
- echo "Done----------"
20
- '''
21
-
22
-
23
- def test_connect_1():
24
- with open('remote_run.sh', 'w') as f:
25
- f.write(script)
26
-
27
- sites = {
28
- 'midway': {
29
- 'url': 'midway.rcc.uchicago.edu',
30
- 'uname': 'yadunand'
31
- },
32
- 'swift': {
33
- 'url': 'swift.rcc.uchicago.edu',
34
- 'uname': 'yadunand'
35
- }
36
- }
37
-
38
- for site in sites.values():
39
- out = connect_and_list(site['url'], site['uname'])
40
- print("Sitename :{0} hostname:{1}".format(site['url'], out))
41
-
42
-
43
- if __name__ == "__main__":
44
-
45
- test_connect_1()
@@ -1,40 +0,0 @@
1
- from parsl.channels.ssh.ssh import SSHChannel as SSH
2
-
3
-
4
- def connect_and_list(hostname, username):
5
- conn = SSH(hostname, username=username)
6
- ec, out, err = conn.execute_wait("echo $HOSTNAME")
7
- conn.close()
8
- return out
9
-
10
-
11
- def test_midway():
12
- ''' Test ssh channels to midway
13
- '''
14
- url = 'midway.rcc.uchicago.edu'
15
- uname = 'yadunand'
16
- out = connect_and_list(url, uname)
17
- print("Sitename :{0} hostname:{1}".format(url, out))
18
-
19
-
20
- def test_beagle():
21
- ''' Test ssh channels to beagle
22
- '''
23
- url = 'login04.beagle.ci.uchicago.edu'
24
- uname = 'yadunandb'
25
- out = connect_and_list(url, uname)
26
- print("Sitename :{0} hostname:{1}".format(url, out))
27
-
28
-
29
- def test_osg():
30
- ''' Test ssh connectivity to osg
31
- '''
32
- url = 'login.osgconnect.net'
33
- uname = 'yadunand'
34
- out = connect_and_list(url, uname)
35
- print("Sitename :{0} hostname:{1}".format(url, out))
36
-
37
-
38
- if __name__ == "__main__":
39
-
40
- pass
@@ -1,46 +0,0 @@
1
- from parsl.channels.errors import BadHostKeyException, SSHException
2
- from parsl.channels.ssh.ssh import SSHChannel as SSH
3
-
4
-
5
- def connect_and_list(hostname, username):
6
- conn = SSH(hostname, username=username)
7
- ec, out, err = conn.execute_wait("echo $HOSTNAME")
8
- conn.close()
9
- return out
10
-
11
-
12
- def test_error_1():
13
- try:
14
- connect_and_list("bad.url.gov", "ubuntu")
15
- except Exception as e:
16
- assert type(e) is SSHException, "Expected SSException, got: {0}".format(e)
17
-
18
-
19
- def test_error_2():
20
- try:
21
- connect_and_list("swift.rcc.uchicago.edu", "mango")
22
- except SSHException:
23
- print("Caught the right exception")
24
- else:
25
- raise Exception("Expected SSException, got: {0}".format(e))
26
-
27
-
28
- def test_error_3():
29
- ''' This should work
30
- '''
31
- try:
32
- connect_and_list("edison.nersc.gov", "yadunand")
33
- except BadHostKeyException as e:
34
- print("Caught exception BadHostKeyException: ", e)
35
- else:
36
- assert False, "Expected SSException, got: {0}".format(e)
37
-
38
-
39
- if __name__ == "__main__":
40
-
41
- tests = [test_error_1, test_error_2, test_error_3]
42
-
43
- for test in tests:
44
- print("---------Running : {0}---------------".format(test))
45
- test()
46
- print("----------------------DONE--------------------------")
@@ -1,41 +0,0 @@
1
- import parsl
2
- from parsl.channels.ssh.ssh import SSHChannel as SSH
3
-
4
-
5
- def connect_and_list(hostname, username):
6
- conn = SSH(hostname, username=username)
7
- ec, out, err = conn.execute_wait("echo $HOSTNAME")
8
- conn.close()
9
- return out
10
-
11
-
12
- def test_push(conn, fname="test001.txt"):
13
-
14
- with open(fname, 'w') as f:
15
- f.write("Hello from parsl.ssh testing\n")
16
-
17
- conn.push_file(fname, "/tmp")
18
- ec, out, err = conn.execute_wait("ls /tmp/{0}".format(fname))
19
- print(ec, out, err)
20
-
21
-
22
- def test_pull(conn, fname="test001.txt"):
23
-
24
- local = "foo"
25
- conn.pull_file("/tmp/{0}".format(fname), local)
26
-
27
- with open("{0}/{1}".format(local, fname), 'r') as f:
28
- print(f.readlines())
29
-
30
-
31
- if __name__ == "__main__":
32
-
33
- parsl.set_stream_logger()
34
-
35
- # This is for testing
36
- conn = SSH("midway.rcc.uchicago.edu", username="yadunand")
37
-
38
- test_push(conn)
39
- test_pull(conn)
40
-
41
- conn.close()
@@ -1,24 +0,0 @@
1
- import parsl
2
- from parsl.channels.ssh_il.ssh_il import SSHInteractiveLoginChannel as SSH
3
-
4
-
5
- def connect_and_list(hostname, username):
6
- conn = SSH(hostname, username=username)
7
- ec, out, err = conn.execute_wait("echo $HOSTNAME")
8
- conn.close()
9
- return out
10
-
11
-
12
- def test_cooley():
13
- ''' Test ssh channels to midway
14
- '''
15
- url = 'cooley.alcf.anl.gov'
16
- uname = 'yadunand'
17
- out = connect_and_list(url, uname)
18
- print("Sitename :{0} hostname:{1}".format(url, out))
19
- return
20
-
21
-
22
- if __name__ == "__main__":
23
- parsl.set_stream_logger()
24
- test_cooley()
@@ -1,49 +0,0 @@
1
- import parsl
2
- from parsl import python_app
3
-
4
- parsl.set_stream_logger()
5
-
6
- from parsl.channels import SSHChannel
7
- from parsl.config import Config
8
- from parsl.executors import HighThroughputExecutor
9
- from parsl.providers import AdHocProvider
10
-
11
- remotes = ['midway2-login2.rcc.uchicago.edu', 'midway2-login1.rcc.uchicago.edu']
12
-
13
- config = Config(
14
- executors=[
15
- HighThroughputExecutor(
16
- label='AdHoc',
17
- max_workers_per_node=2,
18
- worker_logdir_root="/scratch/midway2/yadunand/parsl_scripts",
19
- encrypted=True,
20
- provider=AdHocProvider(
21
- worker_init="source /scratch/midway2/yadunand/parsl_env_setup.sh",
22
- channels=[SSHChannel(hostname=m,
23
- username="yadunand",
24
- script_dir="/scratch/midway2/yadunand/parsl_cluster")
25
- for m in remotes]
26
- )
27
- )
28
- ]
29
- )
30
-
31
-
32
- @python_app
33
- def platform(sleep=2, stdout=None):
34
- import platform
35
- import time
36
- time.sleep(sleep)
37
- return platform.uname()
38
-
39
-
40
- def test_raw_provider():
41
-
42
- parsl.load(config)
43
-
44
- x = [platform() for i in range(10)]
45
- print([i.result() for i in x])
46
-
47
-
48
- if __name__ == "__main__":
49
- test_raw_provider()
@@ -1,13 +0,0 @@
1
- from parsl.channels import OAuthSSHChannel
2
-
3
-
4
- def test_channel():
5
- channel = OAuthSSHChannel(hostname='ssh.demo.globus.org', username='yadunand')
6
- x, stdout, stderr = channel.execute_wait('ls')
7
- print(x, stdout, stderr)
8
- assert x == 0, "Expected exit code 0, got {}".format(x)
9
-
10
-
11
- if __name__ == '__main__':
12
-
13
- test_channel()