- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
我正在使用 TPL 在 C# 中编写一个计算密集型程序。一些初步的基准测试表明,通过使用具有更多内核/线程的处理器可以显着减少计算时间。
但是,单个 CPU 上可用的线程数是有限制的(我认为即使是最好的 Xeons 目前也只有 16 个左右)。
我一直在阅读有关在其自己的机器中具有多个廉价 CPU 的“网格”的渲染农场如何是增加总体核心数量的好方法,但我不知道我如何着手实现其中之一。它是在操作系统级别使用 Microsoft 服务器技术实现的(如果是,如何实现?),还是我还需要修改 C# 代码本身?
任何帮助或现有信息的链接都将不胜感激。
最佳答案
如果您想大规模(数百个节点)执行此操作,那么开发您自己的系统就很困难。你必须处理;节点变得不可用,数据复制到每个节点,跟踪作业进度……这是一个很长的列表。您还需要考虑节点之间所需的通信类型。请记住,与通过网络将消息(数据)发送到另一台机器(即使是快速机器)的成本相比,从一个线程向另一个线程发送消息(数据)的成本很小。您可能必须完全重写您的多线程应用程序才能在分布式系统上良好运行,甚至使用完全不同的算法。
Hadoop
Microsoft 计划将 Dryad 商业化为 LINQ to HPC但是这个项目有一段时间被搁置了(我在离开微软之前就参与过这个项目)。我相信你仍然可以获得最终的“公共(public)预览”,但它不受支持。 SQL 团队选择与 Hadoop/Hortonworks 人员合作,共同开发对 Windows/Azure/.NET 友好的 Hadoop 发行版。据我所知,他们唯一交付的是HDInsight。 .在 Azure 中运行的 Hadoop 服务。
现在有一个 Microsoft .NET SDK For Hadoop这将允许您管理集群和提交作业等。它似乎不允许您编写在 Hadoop 节点上执行的代码。但是,您可以使用 Hadoop 流式 API。这是相当低的级别,但与语言无关,因此您几乎可以使用它来将以任何语言编写的 map reduce 代码与 Hadoop 集成。有关这方面的更多详细信息,请参阅这篇博文。
如果您想以较小的规模(10 个节点)执行此操作,那么我会寻找类似 MPI .NET 的内容.看起来这个项目已被放弃,但类似的东西可能是你想要的。
关于c# - 如何跨多台机器(如渲染农场)运行 C# Task Parallel Library?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22726836/
我看过有关 CocoaPods 的指南,建议像这样导入所需的 pod 的库 header : #import 在哪里Library是库的名称(例如 #import )。 我还看到指南建议像这样导入
我正在尝试创建一个包含其他库的 PHP 库,我敢打赌我遗漏了一些基本的东西。 使用 AWS PHP SDK作为指南,我想创建一个库,在使用 Composer 安装后,它需要其他库,但是类的整个范围(包
我正在为 Android 产品开发我的 gradle 版本,以使产品风格正常工作。 我有以下项目结构: at.mkw.inlocs.android - Library Project at.mkw.i
使用@testing-library/react-hooks 我过去常常通过initialProps 传递模拟存储,正如Advanced Hooks 中提到的那样文档。假设我有一个代码: import
我试图获得一个静态链接到我的程序的音频库。我用 this灵活的包。为了让它运行,我必须按照描述构建 soloud 库 here .下载后不久,我在“build”文件夹中运行了“genie --with
我刚刚安装了 zkcm library在我的 kubuntu 机器上,我在编译 C++ 代码时遇到了问题。 我已经安装了 gmp 和 mpfr 库并检查它们是否工作;代码 mpfr_t m1, m2,
我正在尝试编译我的 native 代码。这是我的 android.mk 文件 //part1-static lib LOCAL_PATH := $(call my-dir) include $(CLE
我正在开发一个带有沙丘的大型图书馆。让我们调用这个库L . 为了避免造成大困惑,沙丘项目有许多较小的库:A , B , C , ... 这些库相互依赖。 我希望用户能够 opam install L
在 unix 之上使用 C 语言工作,我正在加载和使用共享库,如下所示: ... handle = dlopen("nameOfLib"); ... libInit(); ... libGoToSta
我试图找出一种更简单的方法来为XCode中的链接器构建阶段复制/同步框架列表。我知道我可以在Xcode中复制目标,但这是用于创建新的Cocoa Touch Unit Testing Bundle目标。
例如/lib/的描述是它包含系统的共享库文件。 图书馆到底是什么?我们谈论的库文件是否类似于在 C 中导入库?库文件中包含什么以及它们的用途是什么? 它与.dll 有什么关系 最佳答案 库只是一个代码
我有这样的目录结构 . --compile_c.sh --compile_java.sh --config.sh --execute_java.sh --run.sh --src --ccode
我正在更新一些 Makefile 以从 Make 3.81 移动到 3.82。在多个地方,原作者使用了类似这样的东西来构建静态库: all: lib$(library).a($objects) 这似乎
我是 Rust 的新手,正在尝试了解 Cargo 的东西。我在他们的常见问题解答中读到关于 "why do binaries have Cargo.lock in version control, b
我正在尝试使用 Microsoft Enterprise Library 中的 DatabaseFactory 方法。 using Microsoft.Practices.EnterpriseLibr
我刚刚升级到Xcode 5.1,突然出现一个新警告: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctool
然后新的Enterprise Library 6出来了,可以是downloaded here .我已将 EnterpriseLibrary6-binaries.exe 下载并解压缩到我的 C: 驱动器
我正在尝试将 native 库与我的 Eclipse 插件捆绑在一起。当我提供库的路径时 -Djava.library.path ,它完美无缺。 但是,当我将它添加到 MANIFEST.MF 中时文件
在我的 Android Studio 项目中,我有两个子项目/模块:一个 Android 应用程序(App1)和一个 Android 库项目(LibraryProject1)。 App1取决于 Lib
我最近使用 Google 的 Closure 编译器创建了一个 JavaScript 库:https://github.com/bvaughn/task-runner 我打算让这个库供那些也需要完整闭
我是一名优秀的程序员,十分优秀!