[R] DLL Advice
stormplot at hotmail.com
Wed Feb 26 20:58:03 CET 2003
A few questions concerning the use of DLLs in R. Before you get scared off
and dont read any further (Ive seen a lot of talk within the help pages
concerning loading DLLs in R) realize that communication between R and my
DLLs is solid. The problem arises when comparing the computational
performance between calling a *.dll file, compiled using g77 under MinGW
version 2.0.0 with package upgrades, and calling an *.exe file, compiled
with Compaq Visual FORTRAN Professional Edition 6.6.A. Both calls (.Fortran
and system) are made from the R - Tcl/Tk GUI environment. After comparing
identical code, compiled as a DLL and EXE, Ive come to the disappointing
realization that the DLL calls take about five times the computational time
of the EXE calls. I tried the experiment using a number of different
FORTRAN codes with the same results.
My first thought was that I was compiling the code incorrectly. The
following command is what I typically use to generate the DLL.
g77 shared o temp.dll temp.f
After a short search over the net, I discovered a number of g77 optimization
options (e.g. O, O2) for compiling. These options had little to no impact
on the computational times. Next, I went back to Writing R Extensions and
started working with the Rcmd SHLIB. This again had little to no impact on
Any ideas, Im a novice at working with DLLs and know there must be
something Im missing. One option is to just call the EXE, however, it just
seems crummy to generate an input file in R, run the EXE which produces an
output file, read the EXE output file in R, and finally delete the input
and output files.
Thanks in advance for any insightful knowledge you bring my way.
Jason C. Fisher
UCLA Graduate Student
Civil & Environmental Engineering Dept.
5731 Boelter Hall
Los Angeles, CA 90095-1593
Phone Number: (310) 825-2292
Email: stormplot at hotmail.com
More information about the R-help