问题标签 [distributed-programming]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
architecture - 横向扩展:分工还是冗余?
这是我一直想知道的事情。我知道水平扩展是关于在组合中添加更多机器。但我可以想到两种方法。假设我有 20 台服务器要使用(加上一个数据库)。我可以:
- 使所有 20 台服务器作为应用程序服务器运行。
- 让不同的服务器执行任务的不同部分。例如,让一组服务器处理请求,然后另一组应用业务逻辑,然后另一组进行数据库调用。
数字 1 似乎更常见且更容易理解,但数字 2 似乎被认为是“最佳实践”(因为它主要是 n 层架构)。如何在这两种模式之间进行选择?每种方法的优缺点是什么?
compiler-construction - LLVM 适合并行语言吗?
LLVM 的哪些特性使其成为实现(并行、并发、分布式)面向语言的理想选择,是什么让它变得不好?
ruby - 深入的 Ruby Gem 开发资源(书籍、视频、网站)
我正在为 Rails 项目编写我的第一个 Gem,并寻找有关该主题的深入信息,但我一无所获。
我不是在寻找“如何构建 gem”,而是在寻找有关该主题的相关开发人员指南或资源(使用 Ruby 进行分布式编程等)。
我希望有人有好的参考资料??
提前致谢。
mpi - 来自未知来源的 MPI recv
我正在 MPI 中实现一个程序,其中主进程(rank=0)应该能够接收来自其他进程的请求,这些进程要求只有根知道的变量值。如果我将 MPI_Recv(...) 设为 0 级,我必须指定向根发送请求的进程的等级,但我无法控制它,因为进程不按 1、2、3 的顺序运行,.... 我怎样才能接收来自任何级别的请求并使用发送进程的编号向它发送必要的信息?
parallel-processing - 并发程序、并行程序和分布式程序的区别
我只是在学习编程结构;特别是我正在研究并发程序。我遇到了几篇文章,其中并发程序、并行程序和分布式程序之间的区别似乎令人困惑。
我的理解如下:
并发程序:同时执行多个任务或给出这样做的概念
并行程序:解决此类问题的算法允许同时执行一些相关的任务
分布式程序:与可用资源有关,而不是相应算法中固有的并行性。不止一种计算资源可用于解决该问题。
有人可以指出我对这些术语的正确和详细解释吗?
java - 为什么说线程是“轻量级进程”在技术上是不正确的?
在我的 Java 分布式编程课程中,我的老师问了这个问题。他认为,即使这是一个常用的定义,它也不完全正确。
什么东西可以使线程被视为重量级进程?
system - 使公平损失可靠
我正在研究分布式系统。
我正在关注这本书“可靠和安全的分布式编程简介”。
在第 2 章中,介绍了三种类型的链接:
- 公平损失(据我了解是较轻的)
- 顽固的链接
- 完美的链接。
我看到了要求在算法创建过程中建立可靠的公平损失链接的练习。
公平损失财产说,根据书:
公平损失:如果一个正确的进程 p 无限频繁地向正确的进程 q 发送消息 m,那么 q 无限次地传递 m
那么假设没有人进程崩溃,为什么这个链接如此不可靠呢?也许问题是重复?
所以我真正的问题是:
我可以从 Fair loss 链接开始创建一个完美的链接吗?
(显然我想改变公平损失,我不想用完美链接替换它,否则问题会很明显)