Some important problems, such as semantic graph analysis, require large-scale irregular applications composed of many coordinating tasks that operate on a shared data set so big it has to be stored on many physical devices. In these cases, it may be more efficient to dynamically choose where code runs as the applications progresses. Many programming environments provide task migration or remote function calls, but they have sharp trade-offs between flexible composition, portability, performance, and code complexity. We developed Two-Chains, a high performance framework inspired by active message communication semantics. We use the GNU Binutils, the ELF binary format, and the RDMA network protocol to provide ultra-low granularity distributed function composition at runtime in user space at HPC performance levels using C libraries. Our framework allows the direct injection of function binaries and data to a remote machine cache using the RDMA network. It interoperates seamlessly with existing C libraries using standard dynamic linking and load symbol resolution. We analyze function delivery and execution on cache stashing-enabled hardware and show that stashing decreases latency, increases message rates, and improves noise tolerance. This demonstrates one way this method is suited to increasingly network-oriented hardware architectures.
翻译:语义图图分析等一些重要问题,要求大规模非常规应用,包括许多协调任务,在共享的数据集下运作,其规模很大,必须储存在许多物理装置上。在这些情况下,随着应用程序的进展,动态选择代码运行位置可能更有效率。许多编程环境提供任务迁移或远程功能调用,但在灵活的构成、可移动性、性能和代码复杂性之间有着明显的权衡。我们开发了二进制,这是一个受积极信息通信语义启发的高性能框架。我们使用GNU Binutils、ELF二进制格式和RDMA网络协议,在使用 C 库的HPC 性能水平的用户空间运行时提供超低颗粒分布函数构成。我们的框架允许将功能双进器和数据直接注入远程机器缓存,使用RDMA 网络。它与现有的C 图书馆使用标准的动态链接和负载符号分辨率进行无缝的操作。我们分析了存储缓存硬件的功能的交付和执行,并显示隐藏的拉特尼特、增加信息率和改进噪音容忍度。