Poor serialization performance on ppc64le if memcpy is unaligned

Issue #540 new
Colin MacLean created an issue

Testing CCS RPC performance on Summit revealed that serialization has poor performance if the serialization of the upcxx::view causes a memcpy not aligned to 16 bytes.

Below, “legacy” refers to the legacy CCS RPC mode as a baseline and “args1” refers to a modified rpc_perf.cpp where an extra argument is added to the RPC, such as changing [](upcxx::view<char> const&) { ... } to [](char arg, upcxx::view<char> const&) { ... }. The “legacy” version just so happens to be 16 byte aligned due to the size of the function pointer and the size of the lambda adding to 16 bytes.

This performance issue should apply to other trivial serializations, such as std::vector<T>.

Comments (2)

  1. Log in to comment