草庐IT

haskell-mpi

全部标签

python - Haskell 的惰性是 Python 生成器的优雅替代品吗?

在编程练习中,首先要求对阶乘函数进行编程,然后计算总和:1!+2!+3!+...n!在O(n)乘法中(所以我们不能直接使用阶乘)。我不是在寻找这个特定(微不足道的)问题的解决方案,而是在尝试探索Haskell的能力,而这个问题是我想玩的玩具。我认为Python的生成器可以很好地解决这个问题。例如:fromitertoolsimportislicedefifact():i,f=1,1yield1whileTrue:f*=ii+=1yieldfdefsum_fact(n):returnsum(islice(ifact(),5))然后我试图弄清楚Haskell中是否存在与此生成器类似的行为,

Python 比已编译的 Haskell 更快?

我有一个用Python和Haskell编写的简单脚本。它读取包含1,000,000个换行符分隔的整数的文件,将该文件解析为整数列表,对其进行快速排序,然后将其写入已排序的不同文件。该文件与未排序的文件具有相同的格式。很简单。这是Haskell:quicksort::Orda=>[a]->[a]quicksort[]=[]quicksort(p:xs)=(quicksortlesser)++[p]++(quicksortgreater)wherelesser=filter(=p)xsmain=dofilereadx::Int)unletdone=quicksortfwriteFile"s

Python 比已编译的 Haskell 更快?

我有一个用Python和Haskell编写的简单脚本。它读取包含1,000,000个换行符分隔的整数的文件,将该文件解析为整数列表,对其进行快速排序,然后将其写入已排序的不同文件。该文件与未排序的文件具有相同的格式。很简单。这是Haskell:quicksort::Orda=>[a]->[a]quicksort[]=[]quicksort(p:xs)=(quicksortlesser)++[p]++(quicksortgreater)wherelesser=filter(=p)xsmain=dofilereadx::Int)unletdone=quicksortfwriteFile"s

ERROR: Could not build wheels for mpi4py, which is required to install pyproject.toml-based projects

近期新装了一台深度学习工作站,完成基本环境的配置。但是在Python多进程模块配置上遇到了以前也遇到过的问题,为了防止相似情况再次发生,特此记下。问题描述:执行以下命令:pipinstallmpi4py报错信息:Collectingmpi4py==3.1.3 Usingcachedmpi4py-3.1.3.tar.gz(2.5MB) Installingbuilddependencies...done Gettingrequirementstobuildwheel...done Preparingmetadata(pyproject.toml)...doneBuildingwheelsforc

MPI实现矩阵向量乘法

(1)问题MPI实现矩阵向量:Ab的乘积。其中A:100行100列,b为列向量。(2)思路将所有进程分为两部分,rank=0的进程为master节点,其余进程为worker节点。master节点:(1)对A,b赋值,同时将b广播出去(这里涉及一个对广播这个函数不太熟悉的点)(2)对A进行划分,使其被划分为worker数量的份数,并将相应数据发送给相应的工人节点(3)接收工人节点的计算结果,并对收到的结果及进行一定的处理从而得到最终结果worker节点:(1)接受来自master的参数(2)对接收到的数据进行计算(3)将结果返回给master(3)代码main.cpp: #include#inc

java - 从 Java 调用 Haskell,中间使用 C

这听起来像是一场噩梦,但我真的很想让它工作。我大部分时间都在使用这个例子:CallingCfromHaskell并试图让它在ubuntu上运行。我在java中运行这个:packagetest;publicclassJniTest{publicnativeintfib(intx);}使用javah创建.h文件后在c中的this:(test_JniTest.c)#include"test_JniTest.h"#include"Safe_stub.h"JNIEXPORTjintJNICALLJava_test_JniTest_fib(JNIEnv*e,jobjecto,jintf){retu

java - 从 Java 调用 Haskell,中间使用 C

这听起来像是一场噩梦,但我真的很想让它工作。我大部分时间都在使用这个例子:CallingCfromHaskell并试图让它在ubuntu上运行。我在java中运行这个:packagetest;publicclassJniTest{publicnativeintfib(intx);}使用javah创建.h文件后在c中的this:(test_JniTest.c)#include"test_JniTest.h"#include"Safe_stub.h"JNIEXPORTjintJNICALLJava_test_JniTest_fib(JNIEnv*e,jobjecto,jintf){retu

java - Java 和 Haskell 之间的通信

我用谷歌搜索并得到一些答案,Java和Haskell之间的通信可以通过GCJNI(现在站点已关闭)和LambdaVM来完成。要使用LambdaVM/GCJNI,我是否需要下载任何构建工具?我在哪里可以了解更多关于它们的信息,因为我在网上找不到太多资源?我想开发一个在Java和Haskell之间进行通信的应用程序(我将从Java获取输入并将其传递给Haskell并在那里处理并将结果返回给Java)。这就是我想要做的。请帮帮我... 最佳答案 CallingHaskellfromC看起来很简单,因此也可以使用JavaCPP从Java轻松

java - Java 和 Haskell 之间的通信

我用谷歌搜索并得到一些答案,Java和Haskell之间的通信可以通过GCJNI(现在站点已关闭)和LambdaVM来完成。要使用LambdaVM/GCJNI,我是否需要下载任何构建工具?我在哪里可以了解更多关于它们的信息,因为我在网上找不到太多资源?我想开发一个在Java和Haskell之间进行通信的应用程序(我将从Java获取输入并将其传递给Haskell并在那里处理并将结果返回给Java)。这就是我想要做的。请帮帮我... 最佳答案 CallingHaskellfromC看起来很简单,因此也可以使用JavaCPP从Java轻松

java - 从 Java 中调用 Haskell 函数的最佳方式

我正在寻找一种从Java程序中执行Haskell函数的有效方法。我考虑过使用exec()与GHC交互,但似乎应该有更好的方法。 最佳答案 我通常避免使用JNI类型的方法来跨运行时/语言进行链接。他们只是有太多的陷阱和很少的好处。我发现跨流程边界工作更容易。虽然我从未尝试过使用Haskell和Java,但它们都有支持XMLRPC的库,这听起来很适合您正在做的事情。所以:将Haskell程序设置为“服务”,并在需要时调用它的函数。 关于java-从Java中调用Haskell函数的最佳方式,