gpt4 book ai didi

c++ - 网格引擎集群+OpenCV : strange behaviour

转载 作者:太空宇宙 更新时间:2023-11-04 13:45:15 25 4
gpt4 key购买 nike

我正在使用 Grid Engine 集群来运行一些 OpenCV 代码。代码在本地执行时运行良好,但提交到网格时却无法运行。我在这里提取了一个最小的例子。

在目录 ~/code/ 我有一个文件 test.cpp 包含以下代码:

#include <opencv2/core.hpp>
#include <iterator>
#include <string>
#include <sys/types.h>
#include <sys/stat.h>
using namespace cv;
using namespace std;


int main(int ac, char** av)
{
/// Create a random matrix
Mat M;

/// Create a subfolder
string folderName = "sub/";
mkdir(folderName.c_str(),0777);

return 0;
}

代码编译无误。

在本地执行时,即

username@machine:~/code$ ./test

它会按预期创建一个子文件夹,即 ~/code/sub

为了提交到网格,我在主目录(即 ~/job.sh)中创建了一个作业脚本 job.sh,其中包含

cd code/
./test

然后使用

提交
qsub job.sh

什么都没发生。 (而且没有错误)。

但是,当我删除该行时

Mat M;

它确实按预期创建了文件夹。

这种行为的可能原因是什么?我在想像 OpenCV 的共享库这样的东西没有安装在网格的其他计算机上,但我不确定,我也不知道如何验证。

提前感谢您的任何建议。

最佳答案

您要将作业提交到的队列中的所有执行节点都需要可以访问这些库。如果执行节点可以访问共享位置,例如 NFS 安装,您可以在那里安装库。否则,您需要在所有执行节点上安装所需的库。关于 SET_LIB_PATH 的附加链接:

blogs.oracle.com/templedf/entry/inheriting_job_environment

虽然这有助于指向正确的位置,但图书馆仍然需要可访问

关于c++ - 网格引擎集群+OpenCV : strange behaviour,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26308416/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com