小编use*_*128的帖子

Fortran vs C++,Fortran如今仍然在数值分析方面有任何优势吗?

随着C++编译器的快速发展,尤其是英特尔编译器,以及在C/C++代码中直接应用SIMD函数的能力,Fortran在数值计算领域仍然具有任何真正的优势吗?

我来自应用数学背景,我的工作涉及大量的数值分析,计算,优化等,具有严格定义的性能要求.

我对Fortran几乎一无所知,我在C/CUDA/matlab方面有一些经验(如果你认为后者是一种计算机语言),我的日常任务包括分析非常大的数据(例如10GB大的矩阵),并且看起来该程序至少花费2/3的时间来访问内存(这就是为什么我将其部分工作发送到GPU),你是否认为对我来说至少尝试Fortran例程可能是值得的我的代码中一些性能至关重要的部分,以提高我的程序的性能?

因为那里需要完成复杂性和事情,所以如果只有那里有显着的性能优势,我只会这样做,感谢提前.

c c++ fortran cuda

46
推荐指数
4
解决办法
5万
查看次数

OpenMP如何处理嵌套循环?

以下代码是仅仅并行化第一个(外部)循环,还是并行化整个嵌套循环?

    #pragma omp parallel for
    for (int i=0;i<N;i++)
    { 
      for (int j=0;j<M;j++)
      {
       //do task(i,j)//
      }
    }
Run Code Online (Sandbox Code Playgroud)

我只是想确定上面的代码是否会并行化整个嵌套的for循环(因此一个线程直接相关的任务(i,j)),或者它只是并行化外部for循环(因此它确保了每个并行)带有循环索引i的线程,它的内部循环将在一个线程中顺序完成,这非常重要).

c++ parallel-processing loops openmp

31
推荐指数
2
解决办法
3万
查看次数

用于逐位操作的高性能库?

处理非常大的bool数据集,尝试使用逐位操作来处理它,寻找一些处理bit-set的库,它可以:

  1. 动态集,可以通过指针或引用传递.
  2. 按位读写.
  3. 计数设置位和快速.

显然std::bitset,任何建议的功能都太有限了吗?

c c++ performance bit-manipulation

11
推荐指数
1
解决办法
1341
查看次数

在CUDA中获取浮点特殊值的方法?

CUDA中是否有任何设备功能可以获得IEEE 754特殊值,如inf,NaN?我的意思是稳定的方式,而不是一些可以由编译器优化的数学运算.

我只设法找到一个名为nan()的设备函数,它必须采用一些未知的字符串参数.

floating-point cuda nvidia nan

10
推荐指数
1
解决办法
4618
查看次数

有人知道Nvidia的GPU是大还是小端?

我需要在GPU上进行大量的逐位操作,但无法找到有关Nvidia硬件是大端还是小端的任何信息.

cuda nvidia

8
推荐指数
2
解决办法
2963
查看次数

Matlab fmincons和C++的NLP求解器如ipopt之间的性能差距是多少?

我即将为实时应用编写一个algorthim,它涉及一些高维NLP(非线性编程).

在实现之前,我需要对算法进行计时,以确定它是否适用于实时应用程序,因此我使用Matlab的内置fmincons作为基线.

根据经验表明,matlab算法的速度往往从慢到低于C++对应物,所以我想估计一下这种特殊情况可以带来什么样的性能提升?

由于我的工作主要与实时应用程序有关,因此我很少使用NLP(非线性编程),所以我问我的同事们,他们建议我尝试ipopt作为开始,我google了它的网站,没有针对Matlab的基准测试关于算法细节也没有太多话题(至少在Matlab中,检查它们的算法的细节并不难),所以我基本上对它的准确性/鲁棒性/最优性等几乎一无所知.

所以关于NLP的C++实现的任何帮助都将非常有用,非常感谢提前.

c++ optimization matlab nonlinear-optimization ipopt

6
推荐指数
1
解决办法
1540
查看次数

Linux上的超低延迟编程,从哪里开始?

我听说有一些方法可以修改Linux的这样一个特定的应用程序能获得非常低的延迟,使得whenver要求它的资源,操作系统将尝试尽快给它的资源,一种覆盖默认的抢占式多任务机制,我没有CS背景,但我正在处理的应用程序对延迟非常敏感,任何人都可以告诉我这个具体问题是否有任何文档/内容?非常感谢.

c linux latency

6
推荐指数
1
解决办法
814
查看次数

matlab生成的thunk文件的目的是什么?

当从matlab调用外部C库(DLL)时,似乎matlab将首先尝试filename_thunk_pcwinXX.dll在临时目录中生成名为(其中XX依赖于OS的32或64)的thunk文件.

在matlab文档中,它提到该文件是外部DLL和Matlab之间的接口,因此它不包含原始外部DLL的任何其他数据.

问题是,我编写了一个库,在运行时可能会调用其他库,matlab总会给我一些奇怪的结果,甚至在库调用某些库时崩溃(不是全部,我的库和其他库都是64位) DLL).

当从其他C/C++程序而不是matlab调用时,我的所有库函数都可以正常工作.

我只是想知道,为了让matlab正常工作,我的库在运行时调用的其他库是否也需要得到某种thunk文件?我简直无法相信,但我不知道matlab如何处理外部库的确切方法.

c dll matlab loadlibrary thunk

5
推荐指数
1
解决办法
1333
查看次数

我正在寻找一个紧凑的C/C++编译器; 任何建议?

为了满足某些商业应用的要求,我们需要一些非常紧凑的C/C++,它应该是:

  1. 体积小,越小越好,越绿越好(理想情况下,编译器不应要求安装过程变得可行).

  2. 可以编译到x86和x86-64程序,同时针对Windows和Linux平台.

  3. 编译器用于编译非常短的C/C++程序(例如,不超过20行),但编译时间应尽可能短(这是一个关键要求.)

  4. 它的所有功能都应该通过命令行输入来设置(我猜每个编译器都可以这样做).

  5. 拥有易于访问的配置文件.

  6. 可以接受Boost和流行的数学库.

  7. 我不需要高级C++功能(例如C++/99).

  8. 在代码优化方面,如果编译器可以优化代码,那么它是一个优点,但它不是必需的.

  9. 理想情况下,最好是可以免费进行重新分配,但是liscence-fee也是可以接受的,但我们更喜欢一次性付款方式而不是按项目/复制方式.

我们获得了一个内部产品,但是对其他选项开放,无论是否免费.提前谢谢了.

c c++ compiler-construction

4
推荐指数
1
解决办法
9427
查看次数

在matlab中NaN的确切值是多少?

需要在matlab和一些DLL函数之间来回传递一些数据,有一点可以看出我们在matlab中不知道NaN的精确数值,因此会有一些不必要的数据处理来考虑这些值.

有人知道matlab中NaN的确切值或至少值的范围吗?

我最感兴趣的是了解以下两种主要类型:

(1)浮法NaN(32);

(2)NaN为双(64).

double matlab nan

4
推荐指数
2
解决办法
1887
查看次数