【问题标题】:Is ACE (C++ library) still used for high performance computing?ACE(C++ 库)是否仍用于高性能计算?
【发布时间】:2012-01-12 04:48:42
【问题描述】:

对高频交易/高性能计算感兴趣,我遇到了“ACE”:

http://www.cs.wustl.edu/~schmidt/ACE-overview.html

但是,我注意到网站上的很多论文都是 1995 年的,我想知道这个框架是否仍在使用,如果没有,它的替代品是什么?

或者boost取代了这个? ACE 是否包含增强的所需库?

【问题讨论】:

  • 为什么这被标记为cboosttcp???

标签: c++ boost tcp ace


【解决方案1】:

如果你看看他们的subversion repository,现在看来 ACE 并没有进行太多的开发,可能只是错误修复或小的扩展。另一方面,ACE 是同一组其他框架的基础,这些框架确实更活跃。无论如何,discussion forum 显示了相关的活动和对 ACE 的持续兴趣。

关于您关于 ACE 与 boost 的问题,我认为这两个库并不相同。 ACE 旨在实现跨平台高级网络(甚至在实时和嵌入式系统上),提供特定模式,如反应器、服务配置器、完成令牌、内存管理等。 “可移植性”层(ACEOS,如果我没记错的话)只是一个基本层,但在我看来,它并不是当今 ACE 的真正价值主张,而是用于启用其他子系统。

总的来说,我认为对于像POSA2 中描述的那些高级网络模式,ACE 是一个不错的选择。如果您只需要操作系统上的抽象层,那么 boost 是您的最佳选择(更现代且被广泛采用)。

【讨论】:

  • 我不确定我是否想要“高级网络模式”,但我只是想尝试熟悉开发高频交易系统的人会知道的当前框架。您对我可以去学习的延迟框架/技术有什么建议吗?
  • 很抱歉,几年前我在嵌入式实时系统上与ACE合作过,然后转到不同的应用领域,所以我真的不知道该领域今天最好的是什么。
【解决方案2】:

虽然 ACE 很久以前就引起了人们的兴趣,但最近的服务器设计提供了更高的速度(更低的延迟)和多核可扩展性(更高的并发性)。

如果您担心延迟(高频交易运营商为每一微秒而战),那么请进行自己的基准测试。 weighttp(与 ApacheBench 兼容)压力工具是我见过的最有效的工具(使用“-t 4”选项来使用 4 个工作线程,而不是像 AB 那样的 4 秒测试)。

由于Apachebench 是单线程工具,它不会使 SMP 服务器(多线程或多进程)饱和。

【讨论】:

  • 您能否详细说明“最近的服务器设计”?关于延迟网络/编程,您建议熟悉哪些库/框架?
  • 你会发现我所知道的关于here的最广泛的服务器比较
  • 更高的并发性通常意味着更高的延迟,因为线程之间的通信会引入开销。对延迟最敏感的应用程序仍然倾向于单线程,并且倾向于跨内核扩展进程,而不是使用任何类型的线程模型。
  • 多核系统允许“真正的”并行性(与通过获取操作系统任务调度程序提供的时间片共享一个 CPU 的进程或线程相反)。因此,设计合理的多核程序可以实现比单线程应用程序低得多的延迟。
【解决方案3】:

我知道这是一篇旧帖子,但对于那些想了解 ACE 仍在开发中的人来说:

https://github.com/DOCGroup/ATCD/tree/master/ACE

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-12-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-14
    • 1970-01-01
    • 2013-05-11
    相关资源
    最近更新 更多