[Résolu] Rccp problème de compilation

Postez ici vos questions, réponses, commentaires ou suggestions - Les sujets seront ultérieurement répartis dans les archives par les modérateurs

Modérateur : Groupe des modérateurs

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

[Résolu] Rccp problème de compilation

Messagepar Logez Maxime » 01 Juin 2015, 11:34

Bonjour,

j'essaie de faire fonctionner Rccp à partir d'exemples glanés sur le net. Pour le moment j'essaie l'exemple suivant :

Code : Tout sélectionner

# load main two packages
library(Rcpp, lib.loc=":/R/R-3.1.2/library/")
library(inline, lib.loc=":/R/R-3.1.2/library/")
 
# do something with Rcpp to quickly check that it works
body <- '
NumericVector xx(x);
return wrap( std::accumulate( xx.begin(), xx.end(), 0.0));'
 
add <- cxxfunction(signature(x = "numeric"), body, plugin = "Rcpp")
 
x <- 1
y <- 2
res <- add(c(x, y))
res
Quand je fais ça j'obtiens :
Erreur dans compileCode(f, code, language = language, verbose = verbose) :
Compilation ERROR, function(s)/method(s) not created! g++: not found
make: *** [file188832332a82.o] Error 127
Message d'avis :
l'exécution de la commande 'make -f "C:/R/R-31~1.2/etc/x64/Makeconf" -f "C:/R/R-31~1.2/share/make/winshlib.mk" SHLIB_LDFLAGS='$(SHLIB_CXXLDFLAGS)' SHLIB_LD='$(SHLIB_CXXLD)' SHLIB="file188832332a82.dll" WIN=64 TCLBIN=64 OBJECTS="file188832332a82.o"' renvoie un statut 2
De plus : Message d'avis :
l'exécution de la commande 'C:/R/R-3.1.2/bin/x64/R CMD SHLIB file188832332a82.cpp 2> file188832332a82.cpp.err.txt' renvoie un statut 1
N'y connaissant pas grand chose, j'ai suivi ces étapes, sans succès. Il doit y avoir des histories de variables environnementales ou je ne sais quoi.

Je précise que je bosse sous windows 7 et la version 64 de R.

Cordialement,
Maxime

Serge Rapenne
Messages : 1426
Enregistré le : 20 Aoû 2007, 15:17
Contact :

Messagepar Serge Rapenne » 01 Juin 2015, 11:55


Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 01 Juin 2015, 12:23

Hello :D

il faut peut-être checker tes variables d'environnement, afin d'être sûr que tout ce qui doit être disponible est référencé (PATH vers le compilateur, R_LIBS, etc...), voir le message d'erreur en dessous

Compilation ERROR, function(s)/method(s) not created! g++: not found



j'ai testé avec ubuntu (14.04 LTS) et windows 7 (x64), le code s'exécute sans problème.

hope this helps,


@++


pierre


PS hors-sujet: huhu ... du C++ !!!! gaffe à la dérive ... c'est presque Blasphème, non?! :P
=@===--------¬-------¬------¬-----¬
liens utiles :
http://www.gnurou.org/Writing/SmartQuestionsFr
http://neogrifter.free.fr/welcomeOnInternet.jpg
]<((((*< -------------------------------

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

[Résolu] Rccp problème de compilarion

Messagepar Logez Maxime » 01 Juin 2015, 12:47

Merci à tous les deux.

J'ai pas mal bidouillé (ya pas d'autres mots) les variables d'environnement en suivant des indications de-ci de-là et ça a fini par fonctionner ...

Je vais essayer de voir si RcppArmadillo fonctionne. Le but étant d'optimiser le temps de calculs de deux matrices rectangulaires de plus de 10000 lignes chacunes.

Cordialement,
Maxime

P.S : c'est sur mais si ça peut aller plus vite, changement de boutique, changement de matos et pas dans le bon sens :-(

Logez Maxime
Messages : 3138
Enregistré le : 26 Sep 2006, 11:35

Messagepar Logez Maxime » 01 Juin 2015, 13:45

Et en plus tout ça pour que ça n'avance pas plus vite ... Ah que de temps perdu pour rien ! Je n'ai rien trouver de mieux que le "%*%" de R ... que ce soit avec Rccp, RcppEigen ou RcppArmadillo.

Cordialement,
Maxime

Pierre Bady
Messages : 405
Enregistré le : 02 Mai 2006, 07:46

Messagepar Pierre Bady » 01 Juin 2015, 13:52

Rebonjour,

P.S : c'est sur mais si ça peut aller plus vite, changement de boutique, changement de matos et pas dans le bon sens :-(


faut que tu me racontes ça, plus en détail! => mail :)

* Par contre, il faut quand même faire un peu attention avec le Rcpp, voir ci-dessous: http://www.r-bloggers.com/lessons-learn ... ormance-r/

* Sous linux, j'utilise beaucoup la library OpenBLAS à la place de BLAS et c'est assez simple de manipuler et ça peut être une solution pour gagner un peu en perf :)

http://www.stat.cmu.edu/~nmv/2013/07/09 ... on-ubuntu/

Si tu te sens "couillu", tu peux recompiler R avec les bonnes library qui vont bien avec ton CPU (example Intel et MKL) ... mais bon ... c'est plus couillu, pour un gain qui n'est pas forcément super différent de openblas


Sous woinwoin 7, je ne sais pas si tu as cette flexibilité. il semble que oui ... enfin peut-être:
http://www.avrahamadler.com/2013/10/22/ ... indows-64/
http://www.r-bloggers.com/an-openblas-b ... p-by-step/


* Sinon, c'est pour des permutation que tu veux utiliser RcppArmadillo?
les permutation c'est pas ultra compliquer à programmer en C ... en pure C, tu iras peut-être plus vite (à vérifier quand même?). Tu peux peut-être également cannibaliser du code C provenant de package R. Par example, certaines fonctions en C contenu dans le package ade4, sont vraiment très pratique (e.g. freevec, aleapermutmat,aleapermutvec, ... ).



j'espère t'avoir aider un peu,


@++


pierre
=@===--------¬-------¬------¬-----¬

liens utiles :

http://www.gnurou.org/Writing/SmartQuestionsFr

http://neogrifter.free.fr/welcomeOnInternet.jpg

]<((((*< -------------------------------


Retourner vers « Questions en cours »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 1 invité