Logo AND Algorithmique Numérique Distribuée

Public GIT Repository
Completely revise the way to deal with Streamed I/Os
authorFred Suter <suterf@ornl.gov>
Wed, 9 Nov 2022 22:43:12 +0000 (17:43 -0500)
committerFred Suter <suterf@ornl.gov>
Wed, 9 Nov 2022 22:53:48 +0000 (17:53 -0500)
commit3be0396ca83e510e42adc8e3eb12f4befb2f1fff
tree80f63706deb386420c9e366f6bf3d1d29fc2b77d
parent796c472929f78dd5131c885d544579d4a6bdc425
Completely revise the way to deal with Streamed I/Os

Do not implement a new funky HostModel but handle the io_stream call
in CLM03. Basic idea (thx alegrand): start from a regular
NetworkAction and add some extra constraints if it is an I/O stream.

+ Pros: easy to implement and inherit of all the complexity of the
network part. This would have been too much work and redundancy with a
new model. No extra flag, just a new type of I/Os (similar to the
Comm::sendto spirit)

+ Cons: had to cheat a bit to NOT inherit some of the network model
(LV08) complexity for the I/O part (bandwidth factor). Still has to
find a way to not pay the network latency if the stream starts from a
disk. Had to add a little hack to reserve more space in communicate
for the extra constraints.

This new type of I/O is tested in teshsuite/s4u/io-stream (with the
basic CM02 model without crosstraffic to verify if bottlenecks are
correctly handled, and then with the default config)
22 files changed:
MANIFEST.in
src/kernel/activity/CommImpl.cpp
src/kernel/resource/NetworkModel.hpp
src/surf/host_clm03.cpp
src/surf/host_clm03.hpp
src/surf/network_cm02.cpp
src/surf/network_cm02.hpp
src/surf/network_constant.cpp
src/surf/network_constant.hpp
src/surf/network_ns3.cpp
src/surf/network_ns3.hpp
src/surf/ptask_L07.cpp
src/surf/ptask_L07.hpp
src/surf/sio_S22.cpp [deleted file]
src/surf/sio_S22.hpp [deleted file]
src/surf/surf_interface.cpp
src/surf/surf_interface.hpp
teshsuite/s4u/io-stream/io-stream.cpp
teshsuite/s4u/io-stream/io-stream.tesh
teshsuite/surf/surf_usage/surf_usage.cpp
teshsuite/surf/surf_usage2/surf_usage2.cpp
tools/cmake/DefinePackages.cmake