- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hello,
I've been using the Intel MKL library in MATLAB successfully to optimize a time-consuming subfunction. To do this, I set up the compiler and flags in MATLAB using the following commands:
mex -setup
C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020\windows
mex -v -g example.c -I"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020\windows\mkl\include" -L"C:\Program Files (x86)\IntelSWTools\compilers_and_libraries_2020\windows\mkl\lib\intel64" -lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lmkl_cd
Now, I'm looking to achieve the same optimization in R, but I'm unsure of how to set up the Intel MKL library and compiler in R for a similar purpose. I've installed Intel oneAPI and I've followed the following steps to set up my environment:
# Path to the Intel oneAPI toolkit
oneapi_dir <- "C:/Program Files (x86)/Intel/oneAPI"
mkl_include_dir <- file.path(oneapi_dir, "mkl", "latest", "include")
mkl_lib_dir <- file.path(oneapi_dir, "mkl", "latest", "lib", "intel64")
# C code file
c_code_file <- "C:\\Users\\Desktop\\example.c"
#
output_executable <- "my_program"
# Define the compilation command with the output executable name
compile_command <- paste(
"icc -o", output_executable,
c_code_file,
paste("-I", mkl_include_dir, collapse = " "),
paste("-L", mkl_lib_dir, collapse = " "),
"-lmkl_intel_lp64 -lmkl_core -lmkl_sequential -lmkl_cdft_core -lmkl_intel_thread -qopenmp"
)
# Compile the C code
system(compile_command)
However, when I run this script in R I get this
system(compile_command)
[1] 127
The c-code is:
#include <stdio.h>
#include <mkl.h>
int main() {
// Define vector size and variables
int n = 1000;
double *x, *y;
double result;
// Allocate memory for the vectors
x = (double*)malloc(n * sizeof(double));
y = (double*)malloc(n * sizeof(double));
// Initialize the vectors with some data (you can modify this)
for (int i = 0; i < n; i++) {
x[i] = i + 1.0;
y[i] = 2.0 * (i + 1.0);
}
// Calculate the dot product of the vectors using MKL
result = cblas_ddot(n, x, 1, y, 1);
// Print the result
printf("Dot product: %lf\n", result);
// Free allocated memory
free(x);
free(y);
return 0;
}Could someone please guide me on the equivalent steps to perform this in R? I'm particularly interested in how to configure R to use the Intel compiler and link to the MKL library.
Thank you in advance for your help!
Best regards,
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Maraki,
Thanks for posting in Intel communities. Thanks for elaborating on your issue.
We have tried running the shared code and below is the result.
Dot product: 667667000.000000
Please refer to the below links for compiling R code with MKL, extended support, and other linking-related details.
How to use the BLAS and LAPACK libraries within Intel® oneAPI Math Kernel Library (oneMKL) to improve the performance of R.
https://www.intel.com/content/www/us/en/developer/articles/technical/using-onemkl-with-r.html
Other important data which might be useful to you:
Building R with the Intel® Math Kernel Library (Intel® MKL) BLAS and LAPACK to improve the performance of those parts of R that rely on matrix computations.
https://www.intel.com/content/www/us/en/developer/articles/technical/extending-r-with-intel-mkl.html
Linking Intel MKL to R
Could you please get back to us with the MKL version being used and your findings for the code being used by you?
Best Regards,
Shanmukh.SS
コピーされたリンク
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Maraki,
Thanks for posting in Intel communities. Thanks for elaborating on your issue.
We have tried running the shared code and below is the result.
Dot product: 667667000.000000
Please refer to the below links for compiling R code with MKL, extended support, and other linking-related details.
How to use the BLAS and LAPACK libraries within Intel® oneAPI Math Kernel Library (oneMKL) to improve the performance of R.
https://www.intel.com/content/www/us/en/developer/articles/technical/using-onemkl-with-r.html
Other important data which might be useful to you:
Building R with the Intel® Math Kernel Library (Intel® MKL) BLAS and LAPACK to improve the performance of those parts of R that rely on matrix computations.
https://www.intel.com/content/www/us/en/developer/articles/technical/extending-r-with-intel-mkl.html
Linking Intel MKL to R
Could you please get back to us with the MKL version being used and your findings for the code being used by you?
Best Regards,
Shanmukh.SS
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Maraki,
A gentle reminder:
Has the information provided helped? Could you please get back to us if you have any updates on your issue?
Best Regards,
Shanmukh.SS
- 新着としてマーク
- ブックマーク
- 購読
- ミュート
- RSS フィードを購読する
- ハイライト
- 印刷
- 不適切なコンテンツを報告
Hi Maraki,
A gentle reminder:
Has the information provided helped? Could you please get back to us if you have any updates on your issue?
Best Regards,
Shanmukh.SS