我听过很多次这两个词,
但总是困惑.
我猜:
这有区别吗?
我对这两种一致性模型感到很困惑.请提供一些时间表示例和说明. http://en.wikipedia.org/wiki/Consistency_model
HBase有一个主从模型,而Cassandra有一个点对点模型.我知道在主从模型中,主服务器是SPOF(单点故障),并且在对等模型中没有这样的东西.
每种型号还有其他优缺点吗?特别是我正在寻找主对手在对等模型上的任何优势.
据我所知,答案是否定的.OpenCL专为多核系统而设计.
但是,有没有办法在多台计算机上使用OpenCL(每台计算机都是多核系统)?如果没有,是否需要任何其他工具,框架?
我读了一些关于分布式计算,集群计算,网格计算的文章......但我找不到满意的答案
任何想法将不胜感激
谢谢 :)
parallel-processing distributed-computing cluster-computing grid-computing opencl
我正在尝试构建一个分布式计算系统,该系统使用内存映射文件通过VBA协调多个联网PC之间的工作.换句话说,我想让一组联网的计算机同时以协调的方式在一个项目上工作,这个项目可以很容易地分成不同的部分.一台PC需要13个多小时才能完成项目,这对我的客户来说并不实用.
我想将信息存储在内存映射文件中,以帮助PC以协调的方式处理项目(即不重复工作,避免竞争问题等).我已经尝试使用其他类型的文件来实现这一点,它会导致文件争用问题,或者它需要太长时间.所以,正如在这个论坛上所建议的那样,我正在尝试内存映射文件.
我是内存映射文件和分布式计算的新手.必须在VBA中完成.据我所知,我必须指定将文件保存在我们网络上的目录(这里是驱动器Z),所有PC都可以访问.我拼凑了来自不同地方的一些代码:
Option Explicit
Private Const PAGE_READWRITE As Long = &H4
Private Const FILE_MAP_WRITE As Long = &H2
Private Const GENERIC_READ = &H80000000
Private Const GENERIC_WRITE = &H40000000
Private Const OPEN_ALWAYS = 4
Private Const FILE_ATTRIBUTE_NORMAL = &H80
Private Declare Function CreateFile Lib "kernel32" Alias "CreateFileA" (ByVal lpFileName As String, _
ByVal dwDesiredAccess As Long, ByVal dwShareMode As Long, _
ByVal lpSecurityAttributes As Long, ByVal dwCreationDisposition As Long, _
ByVal dwFlagsAndAttributes As Long, ByVal hTemplateFile As Long) As Long …Run Code Online (Sandbox Code Playgroud) 在Spark中有一些访问R库的选项:
看起来SparkR非常有限,OpenCPU需要保留额外的服务,绑定可能会有稳定性问题.还有一些特定于Spark架构的东西使得使用任何解决方案都不容易.
您是否有任何积分R和Spark可以分享的经验?
它看起来像akka.cluster.split-brain-resolver是付费功能.(我从文档中的这一行得到了这样的印象):
这是Typesafe Reactive Platform的一项功能,专门为Typesafe Project Success Subscription客户提供.
这是否意味着我将不得不为处理导致分裂脑的网络分区的策略付费,或者有办法处理可用的开源网络分区?
我有一个集群单例,我希望在动态扩展集群中连接大多数节点的任何分区上运行.
例如,我需要获得所有可用执行程序的列表及其各自的多线程容量(不是总多线程容量,sc.defaultParallelism已经处理过).
由于此参数与实现有关(YARN和spark-standalone具有不同的分配核心策略)和情境(由于动态分配和长期作业运行,它可能会波动).我不能用其他方法估计这个.有没有办法在分布式转换中使用Spark API检索此信息?(例如TaskContext,SparkEnv)
更新至于Spark 1.6,我尝试了以下方法:
1)运行具有多个分区的一阶段作业(>> defaultParallelism)并计算每个executorID的特殊threadID数:
val n = sc.defaultParallelism * 16
sc.parallelize(n, n).map(v => SparkEnv.get.executorID -> Thread.currentThread().getID)
.groupByKey()
.mapValue(_.distinct)
.collect()
Run Code Online (Sandbox Code Playgroud)
然而,这导致估计高于实际多线程容量,因为每个Spark执行器使用过度配置的线程池.
2)类似于1,除了n = defaultParallesim,并且在每个任务中我添加一个延迟以防止资源协商器进行不平衡分片(快速节点完成它的任务并在慢节点开始运行之前请求更多):
val n = sc.defaultParallelism
sc.parallelize(n, n).map{
v =>
Thread.sleep(5000)
SparkEnv.get.executorID -> Thread.currentThread().getID
}
.groupByKey()
.mapValue(_.distinct)
.collect()
Run Code Online (Sandbox Code Playgroud)
它大部分时间都可以工作,但速度比必要慢得多,可能会被非常不平衡的集群或任务推测所打破.
3)我没试过这个:用java反射来读取BlockManager.numUsableCores,这显然不是一个稳定的解决方案,内部实现可能随时改变.
请告诉我你是否找到了更好的东西.
我有一些随机测试参数,我需要计算一个哈希来检测我是否运行相同的参数.我可以使用在不同时间重新编译的相同源来运行测试,或者在不同的机器上运行.
即便如此,我想检测相同的参数是否用于运行.std::hash对于不同的编译版本和不同的机器,是否为相同的输入提供相同的结果?
例如
std::hash<string>{}("TestcaseParamVal0.7Param0.4");
Run Code Online (Sandbox Code Playgroud)
这总是一个独特的数字吗?
apache-spark ×2
scala ×2
akka ×1
akka-cluster ×1
c++ ×1
cassandra ×1
database ×1
excel ×1
excel-vba ×1
hashtable ×1
hbase ×1
master-slave ×1
opencl ×1
opencpu ×1
p2p ×1
portability ×1
r ×1
rpy2 ×1
stdhash ×1
terminology ×1
vba ×1