gpt4 book ai didi

scala - 避免 Java MPI 绑定(bind)中的命名空间冲突

转载 作者:行者123 更新时间:2023-12-04 23:53:59 25 4
gpt4 key购买 nike

我正在为我当前的项目使用 MPJ-api。我使用的两个实现是 MPJ-express 和 Fast-MPJ。但是,由于它们都实现了相同的 API,即 MPJ-API,由于 namespace 冲突,我无法同时支持这两种实现。

有没有办法用相同的包和类名包装两个不同的库,以便在 Java 或 Scala 中同时支持这两个库?

到目前为止,我能想到的唯一方法是将模块移动到单独的项目中,但我不确定这是否可行。

最佳答案

如果您的代码仅使用 MPI 函数的一个子集(就像我审查过的大多数 MPI 代码一样),您可以编写一个抽象层(特征甚至 Cake-Pattern)来定义您实际使用的操作。然后,您可以为每个实现实现一个具体的适配器。

这种方法也适用于非 MPI 通信层(想想 Akka、JGroups 等)

作为奖励,您可以使用 SLF4J 方法:在运行时根据类路径中的实际内容选择正确的实现。

关于scala - 避免 Java MPI 绑定(bind)中的命名空间冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13361074/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com