问题标签 [mpir]

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.

0 投票
0 回答
112 浏览

c++ - 使用 c++ amp 加速使用 MPIR 库 (GMP) 的程序。这可能吗?

我想了解是否可以使用 GPU 处理器和 c ++ amp 加速与 MPIR 库一起工作的循环的执行?

这是我想加快的代码:

如果我在 CPU 上运行程序,它运行得非常慢,我想提高使用显卡的程序的速度。据我了解,我几乎可以使用任何支持 DirectX 11 的现代显卡,甚至嵌入在处理器中,例如 intel HD Graphics 510

如果 c ++ amp 可以与 MPIR 库交互,我认为它是最适合实现我的任务的技术。

我应该对提交的代码进行哪些更改才能在 GPU 上运行它?

0 投票
0 回答
93 浏览

openmp - VS 2015中OpenMP和MPIR同时操作不正确

伙计们。我正在尝试使用 OpenMP 加速循环。

如果我加快使用整数变量的循环,那么一切正常:

如果我开始在循环中使用 MPIR 变量,那么在 Visual Studio 2015 中构建程序时会出现错误。以下是这些错误的编号:C3015、C3017、C3019。以下是导致这些错误的代码:

如果我禁用 pragma omp parallel for 那么 MPIR 本身可以正常工作,那么代码会很好,但它比使用相同数字范围的 int 变量慢得多。

我应该怎么做才能使 Open MP 与 MPIR 一起正常工作,并且我可以通过并行运行它来加速我的程序?

0 投票
0 回答
100 浏览

c++ - 打印 MPIR mpf_class 时出现链接器错误

我正在尝试在 Qt 项目中使用MPIR库。这是一个代码片段:

上面的代码编译没有任何问题。但是,当我尝试像这样打印 mpf_class 的值时:

我收到以下错误:

main.obj:-1:错误:LNK2019:未解析的外部符号“__declspec(dllimport) 类 std::basic_ostream > & __cdecl operator<<(class std::basic_ostream > &,struct __mpf_struct const *)” (__imp_??6 @YAAEAV?$basic_ostream@DU?$char_traits@D@std@@@std@@AEAV01@PEBU__mpf_struct@@@Z) 在函数 main 中引用

如果有帮助,我在 X64 位版本的MSYS2中使用以下命令构建了库:

0 投票
2 回答
224 浏览

python - 运行 python 脚本为 windows、visual studio 2017 和 c++17 配置 mpir

我对 python 非常陌生,我刚刚在 Windows 7 SP1 x64 Home Premium 上的 Visual Studio 2017CE 版本 15.6.6 上设置了它。我浏览了一些教程,并且可以验证至少 Python 已安装并正常工作。

我正在尝试按照 MPIR 文档中的说明构建(c/c++)所需的库以在 Visual Studio 中运行。我有所需的工具:我有 Python、VYASM、MPIR、MPFR 和 MPFRC++。我直接从网站上获得了所有最新版本的库(没有第三方)。这些是默认分布。

在阅读 MPIR 的文档时;它提到我应该运行 Python 脚本 (mpir_config.py),其中 N 是您将构建库 (static-dll) - (debug-release) 版本的 Visual Studio 版本。它声明我应该首先运行 Python 脚本,并且它还声明如果可以根据您的 cpu 为特定平台架构师选择自定义构建。

这是在 Python Shell 中运行 Python 脚本(模块)生成的列表,没有任何参数。

我的系统是带有芯片组 P45 的 Intel DP45SG 主板,运行 QuadCore Intel Core 2 Quad Q9650, 3.0Ghz (9x333)。

别名或代号是主板的 Intel Skyburg。Intel Eaglelake 用于芯片组,Yorkfield 用于处理器。

如果有的话,我不知道我应该选择什么......这是问题的前半部分。另一半是如果我要选择一个合适的存在;如何运行 mpir_config.py 文件来设置它?它是否接受您所说的参数?或者你在shell中运行它然后给它一个值?还是必须更改脚本中的实际代码?我是一个 Python 菜鸟……你可以叫我(蠕虫)我还没有达到蛇的状态。因为我是 Python 新手,所以我不知道下一步该做什么。

现在,至于在 Visual Studio 中设置项目以从他们的解决方案中实际构建 (c/c++) 库,设置配置甚至设置环境变量对我来说都不是问题。任何和所有的帮助将不胜感激。

所有这些麻烦,因为 boost 的多精度库使用 GMP,它并不真正支持 windows...

0 投票
1 回答
1764 浏览

python - 在 Visual Studio 中的 Windows 上安装 MPIR 时遇到问题?

在过去的 3 天里,我一直在尝试在 Windows 7 上使用 VS2017 构建库,这就是我能够想出的:


如果您在让 MPIR 在 Windows 7 64 位上使用 Visual Studio 2017 时遇到问题。您可以按照以下步骤操作。如果您使用的是 Windows 8 或 10,它可能与 windows 目录略有不同,但概念应该仍然相同。您仍然可以将其用作指南,只需对目录设置进行少量修改。

注意: - 这直接针对 x64

0 投票
3 回答
17769 浏览

gmp - GMPY2 未安装

编辑:我正在使用应用商店中的 Win 10 和 Ubuntu

我尝试使用以下方法安装 gmpy2:

并且还下载了 MPIR 并编译了它。但是使用pip install gmpy2仍然给我错误

此外,我发现使用https://www.lfd.uci.edu/~gohlke/pythonlibs/上的预建轮子并没有给我任何功能。

我更确定我对最后一部分的功能理解错误,所以请让我知道正确的语法。

0 投票
2 回答
2869 浏览

c++ - 移除对 Windows SDK 版本的依赖

我正在尝试编译 MPIR(适用于 Windows 的 GMP 版本)。我安装了 Visual Studio 2017,所以它应该可以工作,但我收到以下错误消息:

C:\Program Files (x86)\Microsoft Visual Studio\2017\Community\Common7\IDE\VC\VCTargets\Microsoft.Cpp.WindowsSDK.targets(46,5): error MSB8036: The Windows SDK version 8.1 was not found. Install the required version of Windows SDK or change the SDK version in the project property pages or by right-clicking the solution and selecting "Retarget solution". [C:\mpir\msvc\vs17\lib_mpir_gc\lib_mpir_gc.vcxproj]

我特别需要达到它可以在任何机器上编译的程度,而不仅仅是这台机器,因此在这台机器上安装确切的 SDK 版本并不能解决问题。我需要更改一些内容才能使用 Visual Studio 2017 构建它。

看着C:\mpir\msvc\vs17\lib_mpir_gc\lib_mpir_gc.vcxproj,我找到了这条线:

<WindowsTargetPlatformVersion>10.0.17134.0</WindowsTargetPlatformVersion>

看起来很有希望,但删除它没有任何效果;错误消息保持不变。

我可以改变什么来消除这个错误?

总结一下我认为这应该是可能的原因:

如果您 编写一个 C++ 程序,比如在最简单的场景中,在一个名为foo.cpp.您使用了一些仅在更高版本的 Windows 中可用的非常专业的 API)在至少从 Vista 开始的任何 Windows 上运行。cl foo.cppfoo.exe

cl.exe这与msbuild 调用的完全相同。所以我不是要求新功能。相反,之所以会生成上述错误消息,是因为某些东西不合时宜地破坏了默认的“它只是工作”场景并将锁定添加到特定的 SDK 版本。我在问如何移除锁并返回到默认场景,它只适用于 Visual Studio 附带的任何 SDK 版本。

0 投票
2 回答
52 浏览

.net - 尝试在 Linux 上将 Mpir.NET 与 F# 一起使用

我想在 Ubuntu 18.04 上使用 Mpir.NET 和 F# (4.5),在命令行上使用 dotnet。不成功。如果有更简单的方法在 F# linux 上使用 Mpir.NET,请告知。

遵循https://docs.microsoft.com/en-us/dotnet/fsharp/get-started/get-started-command-line上的 dotnet 说明 。使用 Newtonsoft.Json 包的示例项目运行良好当我构建一个项目来测试 Mpir.NET 时,我收到如下所述的错误。

将 src/App/Program.fs 替换为 Mpir.NET 文档中的程序:

我收到以下信息/警告消息:

警告:使用“.NETFramework,Version=v4.6.1”而不是项目目标框架“.NETCoreApp,Version=v2.1”恢复包“Mpir.NET 0.4.0”。此软件包可能与您的项目不完全兼容。info : 包“Mpir.NET”与项目“src/App/App.fsproj”中的所有指定框架兼容。信息:包'Mpir.NET'版本'0.4.0'的PackageReference添加到文件'/home/doug/f#favs/MpirProj/src/App/App.fsproj'。

生成的 App.fsproj 文件是:

做构建

消息

/home/doug/f#favs/MpirProj/src/App/App.fsproj:警告 NU1701:使用“.NETFramework,Version=v4.6.1”而不是项目目标框架恢复包“Mpir.NET 0.4.0” '.NETCoreApp,版本 = v2.1'。此软件包可能与您的项目不完全兼容。应用程序-> /home/doug/f#favs/MpirProj/src/App/bin/Debug/netcoreapp2.1/App.dll

构建成功。

当我运行时,请参阅下面的错误消息

消息

/home/doug/f#favs/MpirProj/src/App/App.fsproj:警告 NU1701:使用“.NETFramework,Version=v4.6.1”而不是项目目标框架恢复包“Mpir.NET 0.4.0” '.NETCoreApp,版本 = v2.1'。此软件包可能与您的项目不完全兼容。/home/doug/f#favs/MpirProj/src/App/App.fsproj:警告 NU1701:使用“.NETFramework,Version=v4.6.1”而不是项目目标框架恢复包“Mpir.NET 0.4.0” '.NETCoreApp,版本 = v2.1'。此软件包可能与您的项目不完全兼容。

未处理的异常:System.TypeInitializationException:“Mpir.NET.mpir”的类型初始化程序引发异常。---> System.Exception: MPIR: can't determine path to the xmpir.so at Mpir.NET.mpir.LocateLibrary(String name) at Mpir.NET.mpir.GetXMPIRLibraryPath() at Mpir.NET.mpir.initialize_hxmpir () 在 Mpir.NET.mpir..cctor() --- 内部异常堆栈跟踪结束 --- 在 Mpir.NET.mpir.mpz_init_set_str(String str, UInt32 _base) 在 Mpir.NET.NumericLiteralZ.FromString(String s) 在/home/doug/f#favs/MpirProj/src/App/Program.fs:line 3 中的 .$Program.main@()

0 投票
1 回答
433 浏览

c++ - MPI_Scatter 根进程退出信号 (6)

我正在尝试读取图像(.ras)并将图像的一部分发送到每个进程。但每次我得到

主要作业正常终止,但 1 个进程返回非零退出代码。根据用户方向,作业已中止。mpirun 注意到节点 eskandarany 上 PID 为 0 的进程等级 0 在信号 6(中止)上退出。

这是我的代码:

0 投票
0 回答
49 浏览

c++ - 为什么我得到“mpir_ui”没有在这个范围内声明?

在 Fedora 31 上安装 mpir-3.0 之后。现在我尝试构建项目:

但是当我编译它时,我得到了这个错误:

我已经使用了这些标志: