const SmpiBenchGuard suspend_bench;
aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::CpuTIData("IO - read", count * datatype->size()));
+ MPI_Offset prev;
+ fh->get_position(&prev);
int ret = fh->seek(offset,MPI_SEEK_SET);
if (ret == MPI_SUCCESS)
ret = simgrid::smpi::File::read(fh, buf, count, datatype, status);
+ fh->seek(prev,MPI_SEEK_SET);
TRACE_smpi_comm_out(rank_traced);
return ret;
}
aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__,
new simgrid::instr::CpuTIData("IO - read_at_all", count * datatype->size()));
+ MPI_Offset prev;
+ fh->get_position(&prev);
int ret = fh->seek(offset,MPI_SEEK_SET);
if (ret == MPI_SUCCESS)
ret = fh->op_all<simgrid::smpi::File::read>(buf, count, datatype, status);
+ fh->seek(prev,MPI_SEEK_SET);
TRACE_smpi_comm_out(rank_traced);
return ret;
}
const SmpiBenchGuard suspend_bench;
aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__, new simgrid::instr::CpuTIData("IO - write", count * datatype->size()));
+ MPI_Offset prev;
+ fh->get_position(&prev);
int ret = fh->seek(offset,MPI_SEEK_SET);
if (ret == MPI_SUCCESS)
ret = simgrid::smpi::File::write(fh, const_cast<void*>(buf), count, datatype, status);
+ fh->seek(prev,MPI_SEEK_SET);
TRACE_smpi_comm_out(rank_traced);
return ret;
}
aid_t rank_traced = simgrid::s4u::this_actor::get_pid();
TRACE_smpi_comm_in(rank_traced, __func__,
new simgrid::instr::CpuTIData("IO - write_at_all", count * datatype->size()));
+ MPI_Offset prev;
+ fh->get_position(&prev);
int ret = fh->seek(offset,MPI_SEEK_SET);
if (ret == MPI_SUCCESS)
ret = fh->op_all<simgrid::smpi::File::write>(const_cast<void*>(buf), count, datatype, status);
+ fh->seek(prev,MPI_SEEK_SET);
TRACE_smpi_comm_out(rank_traced);
return ret;
}
MPI_Offset result;
simgrid::smpi::colls::scan(&val, &result, 1, MPI_OFFSET, MPI_SUM, fh->comm_);
+ MPI_Offset prev;
+ fh->get_position(&prev);
fh->seek(result, MPI_SEEK_SET);
int ret = fh->op_all<simgrid::smpi::File::read>(buf, count, datatype, status);
if (fh->comm_->rank() == fh->comm_->size() - 1) {
}
char c;
simgrid::smpi::colls::bcast(&c, 1, MPI_BYTE, fh->comm_->size() - 1, fh->comm_);
+ fh->seek(prev, MPI_SEEK_SET);
return ret;
}
{
fh->shared_mutex_->lock();
XBT_DEBUG("Write shared on %s - Shared ptr before : %lld", fh->file_->get_path(), *(fh->shared_file_pointer_));
+ MPI_Offset prev;
+ fh->get_position(&prev);
fh->seek(*(fh->shared_file_pointer_), MPI_SEEK_SET);
write(fh, const_cast<void*>(buf), count, datatype, status);
*(fh->shared_file_pointer_) = fh->file_->tell();
XBT_DEBUG("Write shared on %s - Shared ptr after : %lld", fh->file_->get_path(), *(fh->shared_file_pointer_));
fh->shared_mutex_->unlock();
+ fh->seek(prev, MPI_SEEK_SET);
return MPI_SUCCESS;
}
}
MPI_Offset result;
simgrid::smpi::colls::scan(&val, &result, 1, MPI_OFFSET, MPI_SUM, fh->comm_);
+ MPI_Offset prev;
+ fh->get_position(&prev);
fh->seek(result, MPI_SEEK_SET);
int ret = fh->op_all<simgrid::smpi::File::write>(const_cast<void*>(buf), count, datatype, status);
if (fh->comm_->rank() == fh->comm_->size() - 1) {
}
char c;
simgrid::smpi::colls::bcast(&c, 1, MPI_BYTE, fh->comm_->size() - 1, fh->comm_);
+ fh->seek(prev, MPI_SEEK_SET);
return ret;
}