作为来自企业Web开发世界的HPC世界中的某个人,我总是很想知道回到"现实世界"的开发人员如何利用并行计算.现在所有芯片都在进行多核处理,这就更加重要了,当芯片上有数千个内核而不是少数内核时,它会更加相关.
我的问题是:
最后,我将此视为一个多核问题,但随意谈论其他类型的并行计算.如果您正在移植部分应用程序以使用MapReduce,或者如果大型集群上的MPI是您的范例,那么也要明确提及.
更新:如果您回答#5,请提及您是否认为如果有更多内核(100,1000等)可以改变,而不是可以提供可用内存带宽(看看每个内核带宽越来越小) ).您是否仍可以将剩余的核心用于您的应用程序?
您如何设计/构建可伸缩的应用程序?任何有助于理解如何扩展应用程序的书籍或网站的建议?
谢谢
我指的是当用户在Google中键入搜索字词时用于提供查询建议的算法.
我主要感兴趣的是:1.最重要的结果(最有可能是查询而不是匹配的任何东西)2.匹配子串3.模糊匹配
我知道你可以使用Trie或generalized trie来找到匹配,但它不符合上述要求......
这里提到类似的问题
algorithm scalability autocomplete autosuggest data-structures
我一直在考虑将Parse.com的服务用于我的后端,但我对它的可扩展性持怀疑态度.
它能真正处理几千个并发用户吗?如果没有,他们有什么好的方式从它过渡?
高可扩展性的一种方法是使用网络负载平衡来分割多个服务器之间的处理负载.
这种方法提出的一个挑战是服务器是状态感知的 - 将用户状态存储在"会话"中.
该问题的一个解决方案是"粘性会话"(又名"会话亲和性"),其中每个用户被分配给单个服务器,并且他/她的状态数据在整个会话期间专门包含在该服务器上.
"粘性会话"方法的优点和缺点是什么?你是否使用它,如果是这样,你对它感到满意吗?
我听说很多人互换使用这两个术语.但是,在我看来,它们之间存在差异:
可扩展性 - 系统增加当前硬件资源工作量的能力(扩大规模);
弹性 - 系统增加其当前和附加(动态添加的按需)硬件资源(缩小)的工作量的能力;
弹性与部署在云应用程序密切相关.
我是否区分了这两种非功能性软件特性呢?可能有人提供具体的例子,所以我们可以在这两个术语之间划出更明显的界限吗?
可能重复:
什么是Big O表示法?你用它吗?
大家好,
相当基本的可扩展性符号问题.
我最近收到了一篇关于我的python有序列表实现的帖子的评论"但要注意你的'有序集'实现是插入的O(N)"
很高兴知道,但我不确定这意味着什么.
我看过n(o)o(N),N(o-1)或N(o*o)等符号
上述符号是指什么?
我们正在构建一个网络应用程序,将在比赛期间用于投票选手并在中央显示器上显示实时投票统计数据.
比赛将持续15分钟,大约4000名用户将在这段时间内连接到网络应用程序并发送投票,但每个用户设备都是唯一的.
我们正在考虑使用Meteor.js开发这样的Web应用程序.但是,由于我们在为大量并发用户和Meteor.js的beta状态开发服务方面经验不足,我们对该项目的实际可行性存在一些担忧.
以下是我们要解决的问题:
votes.find({}),其余用户将只看到vote/ already voted按钮.从真实案例或测试场景中获取一些数据对我们有很大帮助.
Meteor的基础设施能够处理4000个用户吗?或者我们应该去寻找这个已删除问题中列出的其他托管解决方案(您需要10k + rep才能看到它)?
是否有任何特定于Meteor.js的性能考虑因素我们应该注意什么?
我们已经看过类似的帖子,但是他们都没有在如此短的时间内处理如此大量的用户:
此外,我们可以使用Cluster智能包.有人有这方面的经验吗?
这是目前我所知道的唯一方式.理解它Scala使用Java虚拟机.我以为Jruby也是.Twitter将其中间件转换为Scala.他们可以做同样的事情并使用Jruby吗?
他们是否可以从Jruby开始,而不是因为他们的缩放问题导致他们首先从Ruby迁移到Scala?我不明白Jruby是什么?我假设因为Jruby可以使用Java,它会缩放到Ruby不会的地方.
在这种情况下,这一切都归结为静态与动态类型吗?
创建node.js应用程序非常简单.
var app = require('express')();
app.get('/',function(req,res){
res.send("Hello world!");
});
Run Code Online (Sandbox Code Playgroud)
但是假设人们开始沉迷于你的Hello World!应用程序并耗尽你的资源.这个例子如何在实践中扩大规模?我不明白,因为是的,你可以在不同的计算机上打开几个node.js实例 - 但是当有人访问http://your_site.com/时,它直接针对那个特定的机器,那个特定的端口,那个特定的节点进程.又怎样?
scalability ×10
algorithm ×1
architecture ×1
autocomplete ×1
autosuggest ×1
big-o ×1
cloud ×1
concurrency ×1
elasticity ×1
http ×1
iphone ×1
javascript ×1
jruby ×1
meteor ×1
multicore ×1
node.js ×1
parsing ×1
performance ×1
ruby ×1
scala ×1
session ×1
set ×1
sticky ×1
twitter ×1