Yes, under 64-bit it is sometimes slower and it highly depends on the
problem and the compiler you have. Note also that nobody managed to get
a 64-bit Windows R binary compiled with gcc so far.
Remember, 10 years ago there was the SUN Ultra Sparc III and above
architecture, and gcc was known to produce extremely inefficient 64-bit
binaries for that platform. Things got somewhat better in the meantime.
With the tests I used 32-bit R compiled with gcc was roughly 10% slower
on Windows than under Linux - but as I said, it depends on the problem.
Trying loops versus matrix operations is a way to specify a two very
different problems, for example.
Uwe Ligges
Cézar Freitas wrote:
Hi, all.
I began to migrate my R codes from Windows to Linux and surprised me
with an old question. I simplified the problem and made a little test to
compare times at same
computer and the Linux time is worse (not so little) than Windows time:
28 vs 53 seconds.
I make an example (below) to facilitate all to see the difference.
I also build from source (it's my first time) a version of R to compare with
the distributed (compiled) R version. The times are similar to the other Linux
version.
I supposed R on Linux should be faster (32 and 64 bit) than windows version. Is
this difference because 64 bit R version is slower than 32 bits one? I started
the machine in both sittuations and checked free memory.
Tecnichal details:
Machine: Intel Core 2 Duo DDR2 4 Gb RAM
Windows version: XP Professional - 32 bits
R version: 2.9* binaries
Linux version: Ubuntu 8* (Hardy) - 64 bits
R version: 2.9* binaries and 2.9* compiled from source
Thanks to all,
Cezar Freitas
#code
N = 50000
n = 15000
#makes data
dad = as.data.frame(cbind(sample(N,N,replace=FALSE), rpois(N,30)))
names(dad) = c("id","age")
aux = as.data.frame(cbind(sample(N,n,replace=FALSE), round(runif(n),4)))
names(aux) = c("id","score")
#calculates time
set.seed(790) #to be equal to everyone
system.time({
dad$score = 0
subdad = subset(dad, id%in%aux$id)
for(k in 1:(dim(subdad)[1])){
temp = aux$score[aux$id==subdad$id[k]]
if(length(temp)) subdad$score[k] = temp
}
})
#windows time
# user system elapsed
# 27.81 0.00 27.82
#linux usual compilation time
# user system elapsed
# 52.635 0.016 52.748
#linux (my compilation) time
# user system elapsed
# 52.567 0.016 52.588
#==============END OF CODE
____________________________________________________________________________________
Veja quais são os assuntos do momento no Yahoo! +Buscados
http://br.maisbuscados.yahoo.com
[[alternative HTML version deleted]]
------------------------------------------------------------------------
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.
______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.