小编Ped*_*ael的帖子

使用 R 配置 MKL

我在使用MKL库触发R线程时遇到问题。我目前使用的是 Ubuntu 18.04.2 LTS。

\n\n
Linux pedro-HP-EliteOne-800-G1-AiO 4.18.0-15-generic #16~18.04.1-Ubuntu SMP Thu Feb 7 14:06:04 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux\n\nr-open$ screenfetch \n                          ./+o+-       pedro@pedro-HP-EliteOne-800-G1-AiO\n                  yyyyy- -yyyyyy+      OS: Ubuntu 18.04 bionic\n               ://+//////-yyyyyyo      Kernel: x86_64 Linux 4.18.0-15-generic\n           .++ .:/++++++/-.+sss/`      Uptime: 19h 27m\n         .:++o:  /++++++++/:--:/-      Packages: 1834\n        o:+o+:++.`..```.-/oo+++++/     Shell: bash\n       .:+o:+o/.          `+sssoo+/    Resolution: 1920x1080\n  .++/+:+oo+o:`             /sssooo.   DE: GNOME \n /+++//+:`oo+o               /::--:.   WM: GNOME Shell\n \\+/+o+++`o++o               ++////.   WM Theme: Adwaita\n  .++.o+++oo+:`             /dddhhh.   GTK Theme: Ambiance [GTK2/3]\n       .+.o+oo:.          `oddhhhh+    Icon Theme: ubuntu-mono-dark\n …
Run Code Online (Sandbox Code Playgroud)

multithreading r compilation multiprocessing intel-mkl

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

朱莉娅:宏线程和并行

我们知道,Julia支持并行性,这是根植于非常好的语言的东西.

我最近看到Julia支持线程,但在我看来它是实验性的.我注意到在使用Threads.@Threads宏的情况下,不需要共享数组,这可能是计算优势,因为没有执行对象的副本.我还看到了没有声明所有功能的优点@everywhere.

谁能告诉我使用@parallel宏而不是宏的优势@threads

下面是使用非同步宏进行并行化的两个简单示例.

使用@threads宏

addprocs(Sys.CPU_CORES)

function f1(b)
   b+1 
end

function f2(c)
   f1(c)
end

result = Vector(10)

@time Threads.@threads for i = 1:10
  result[i] = f2(i)
end 
Run Code Online (Sandbox Code Playgroud)

0.015273秒(6.42 k分配:340.874 KiB)

使用@parallel宏

addprocs(Sys.CPU_CORES)

@everywhere function f1(b)
   b+1 
end

@everywhere function f2(c)
   f1(c)
end

result = SharedArray{Float64}(10)
@time @parallel for i = 1:10
    result[i] = f2(i)
end
Run Code Online (Sandbox Code Playgroud)

0.060588秒(68.66 k分配:3.625 MiB)

在我看来,对于蒙特卡罗模拟,其中循环在数学上是独立的,并且需要大量的计算性能,使用@threads宏更方便.您如何看待使用每个宏的优缺点?

最好的祝福.

multithreading julia

3
推荐指数
1
解决办法
2457
查看次数

Rcpp - 在包的结构外编译

我有一个关于在包结构之外使用Rcpp使用C++代码的问题.

为了澄清我的疑问,请考虑下面的C++代码(test.cpp):

// [[Rcpp::depends(RcppGSL)]]

#include <Rcpp.h>
#include <numeric>
#include <gsl/gsl_sf_bessel.h>
#include <RcppGSL.h>
#include <gsl/gsl_matrix.h>
#include <gsl/gsl_blas.h>

using namespace Rcpp;

// [[Rcpp::export]]
NumericVector timesTwo(NumericVector x) {
  return x * 2;
}

// [[Rcpp::export]]
double my_bessel(double x){
  return gsl_sf_bessel_J0 (x);
}

// [[Rcpp::export]]
int tamanho(NumericVector x){
  int n = x.size();

  return n;
}

// [[Rcpp::export]]
double soma2(NumericVector x){
  double resultado = std::accumulate(x.begin(), x.end(), .0);
  return resultado; 
}

// [[Rcpp::export]]
Rcpp::NumericVector colNorm(const RcppGSL::Matrix & G) {
  int k = …
Run Code Online (Sandbox Code Playgroud)

c++ r rcpp

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

关键字参数 - 函数

我是朱莉娅的初学者,

如何创建带参数关键字的函数而不必在函数中初始化这些参数?

一个非常简单的例子:

function f(;a = 1, b = 2)
 a+b
end
Run Code Online (Sandbox Code Playgroud)

我想要做:

function f(;a, b)
 a+b
end
Run Code Online (Sandbox Code Playgroud)

最好的祝福.

julia

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

混合似然 - 使用Optim包

亲爱的julia语言用户.使用Optim包的optimize功能时遇到问题.下面的代码有什么错误?

using Optim
using Distributions

rng = MersenneTwister(1234);

d = Weibull(1,1)
x = rand(d,1000)


function pdf_weibull(x, lambda, k)  
    k/lambda * (x/lambda).^(k-1) * exp((-x/lambda)^k)

end


function obj(x::Vector, lambda, k)
    soma = 0
    for i in x
        soma = soma + log(pdf_weibull(i,lambda,k))
    end
    -soma
end

obj(x, pars) = obj(x, pars...)

optimize(vars -> obj(x, vars...), [1.0,1.0])
Run Code Online (Sandbox Code Playgroud)

产量

julia> optimize(vars -> obj(x, vars...), [1.0,1.0])
ERROR: DomainError:
Exponentiation yielding a complex result requires a complex argument.
Replace x^y with …
Run Code Online (Sandbox Code Playgroud)

julia

0
推荐指数
1
解决办法
131
查看次数

标签 统计

julia ×3

multithreading ×2

r ×2

c++ ×1

compilation ×1

intel-mkl ×1

multiprocessing ×1

rcpp ×1