草庐IT

MPI_Reduce

全部标签

java - 是否有 'reduce' 的类型安全 Java 实现?

我经常需要在java中运行reduce(也称为foldl/foldr,具体取决于您的上下文)来聚合Itterable的元素。Reduce采用集合/可迭代等,一个有两个参数的函数,以及一个可选的起始值(取决于实现细节)。该函数依次应用于集合中的一个元素和先前调用reduce的输出,直到处理完所有元素,并返回最终值。在任何常见的javaapi中是否有reduce的类型安全实现?GoogleCollections似乎它应该有一个,但我没能找到它。(可能是因为我不知道它会使用什么其他名称。) 最佳答案 根据您的描述,您可能很容易推出自己的通

hadoop - map reduce中的Total order sorting和secondary sorting有什么区别?

我想探索总排序和二次排序。谁能解释一下哪种用例适合这两种模型? 最佳答案 二级排序是一种允许MapReduce程序员控制值在reduce函数调用中显示的顺序的技术。跨所有reducer对Map输出键进行排序称为TotalOrder排序。请查看以下链接,https://www.quora.com/What-is-secondary-sort-in-Hadoop-and-how-does-it-workhttp://blog.ditullio.fr/2016/01/04/hadoop-basics-total-order-sorting

hadoop - 在 hadoop 中 - 文件拆分的 Map-Reduce 错误

当我在map类中使用以下行时:StringfileName=((FileSplit)context.getInputSplit()).getPath().getName();System.out.println(fileName);我得到一个空的输出文件。此外,控制台的最后两行是:14/05/0612:52:53INFOmapred.JobClient:Mapoutputrecords=014/05/0612:52:53INFOmapred.JobClient:SPLIT_RAW_BYTES=2127 最佳答案 问题出在System

hadoop - Map Reduce Job 在一个时间窗口中找到流行的项目

我在面试中被问到这个问题,我不确定我是否给出了正确的答案,所以我想了解一些见解。问题:存在用户和项目流。每分钟,我都会收到一个元组列表(用户、项目),表示用户u消费了项目i。我需要找到过去一小时内前100个热门商品,即计算每个商品有多少用户消费并排序。这里的技巧是,在过去的一个小时内,如果同一个用户多次消费同一个商品,则只考虑消费1次。不允许同一用户重复消费。面试官说我应该想大点,每小时有几百万的消费。因此,他建议我做一个map-reduce工作或每分钟可以处理如此大量数据的工作。我想出的解决方案:我说我可以维护一个列表(或者矩阵,如果你愿意的话)消耗的用户-项目-时间戳元组,就好像有

memory - 为TaskTracker子进程配置内存的不同方式(Mapper和Reduce Tasks)

设置mapred.job.map.memory.mb有什么区别?和mapred.child.java.opts使用-Xmx来控制Mapper和Reduce任务使用的最大内存?哪个优先? 最佳答案 -Xmx指定分配的jvm的最大堆空间。这是为对象分配保留的空间,由garbagecollector管理。.另一方面,mapred.job.map.memory.mb指定最大值virtualmemoryHadoop任务子进程允许的。如果超过最大堆大小,JVM会抛出OutOfMemoryException。JVM可能使用比最大堆大小更多的内存,

javascript - 浏览器/JS : reduce on an object

我的javascript应用程序在firefox和chrome上运行良好。但它在InternetExplorer(IE8)上似乎会被破坏。我没有在控制台日志中收到错误消息。通过调试我注意到的代码,应用程序在以下行中断:series.reduce(visit,[]);此时整个函数退出。我知道,reduce适用于数组,但是console.info(typeof(series))告诉:对象但是这个对象看起来确实像一个数组——而且它适用于FF/Chrome。这可能是为什么IE在此时停止处理该功能的原因吗?并且:如何在IE中处理这个问题?谢谢。 最佳答案

c++ - MPI 和 DLL(SO) 函数

MPI的新手,目前我还没有super计算机可以玩,有一件事我不知道,DLL/SO在集群计算中是如何处理的?我们可以像在PC上一样使用DLL/SO吗?为什么支持WindowsHPC操作系统而不是Linux的super计算机如此之少?目前我认为在windows上编程软件要感谢visualstudio更容易,但对于集群计算来说太糟糕了,linux是目前的首选。 最佳答案 添加到您已经在问题的评论中被告知的内容:a)我认为Linux在super计算领域占据主导地位的部分原因在于它是开源的。为您的10^6-CPU庞然大物开发硬件后,您可能需要

java - NPE on java stream reduce操作

最近,在处理Java8流时,我在处理以下测试用例时遇到了关于reduce操作的NullPointerException:privatestaticfinalBinaryOperatorsum=(a,b)->{if(a==null)returnb;if(b==null)returna;returnInteger.sum(a,b);};Lists=newArrayList();s.add(null);s.add(null);s.add(null);Integeri=s.stream().reduce(sum).orElse(null);//throwsNPEIntegeri=s.strea

c++ - 为什么 MPI_Barrier 会导致 C++ 中的段错误

我已将我的程序缩减为以下示例:#includeintmain(intargc,char*argv[]){intrank,size;MPI_Init(&argc,&argv);MPI_Comm_rank(MPI_COMM_WORLD,&rank);MPI_Comm_size(MPI_COMM_WORLD,&size);MPI_Barrier(MPI_COMM_WORLD);MPI_Finalize();return0;}我编译并运行代码,得到如下结果:My-MacBook-Pro-2:xCode_TrapSimuser$mpicxx-g-O0-WallbarrierTest.cpp-ob

c++ - MPI 分布层

我用MPI写了一个分布层。假设我们有n个数据源和k个数据消费者。在我的方法中,n个MPI进程中的每一个都读取数据,然后以给定的方式(逻辑)将其分发给k个数据消费者(其他MPI进程)中的一个(或多个)。所以它看起来非常通用,我的问题是已经完成了类似的事情吗?看似简单,其实很复杂。假设分发检查哪些数据消费者准备好工作(动态工作分发)。它可以根据基于数据的给定算法分发数据。有很多可能性,我和我们每个人都不想重新发明轮子。 最佳答案 据我所知,除了MPIAPI本身之外,没有通用的实现。您应该根据问题的限制使用正确的函数。如果您正在尝试构建一