[R-SIG-Mac] Old Dell running faster than new MacBook
Simon Urbanek
simon.urbanek at r-project.org
Sat Oct 25 20:42:44 CEST 2008
On Oct 25, 2008, at 1:23 PM, Nils Rüfenacht wrote:
> Thanks for your replies.
>
> There's nothing special about my code (I guess), but here it is.
>
Well, the only special thing about it is that it's pure interpreted
code so it cannot take advantage of anything in R.
However, I'm surprised about your timings - are you sure you're not
throttling the CPU? See the energy savings preferences - it seems as
if you're running in a battery saving mode so the CPU is at half its
speed. This is what I get:
mini, Intel Code 1.66GHz (so much slower than yours):
user system elapsed
15.321 0.123 15.764
iMac, Intel Core 2 Duo 2.8GHz (a bit faster than yours):
user system elapsed
8.602 0.067 8.708
Given the kind of code, you cannot expect any magic, because it
doesn't use memory or multiple cores, so even the most recent,
expensive machines won't be much faster. Raw clock speed is what
matters here (whether old Pentium or latest Xeon won't matter
much ;)). Given the results above, I'd expect your machine to clock
somewhere around 10s. I have compared it to other OSes and the results
are consistent ...
Cheers,
Simon
>
> indexGenerator <-
> function(mue,sigma,duration,numOfSimulations,timeStep =
> 1/252,nameBasis="Index"){
>
> m <- mue
> s <- sigma
> T <- duration
> dt <- timeStep
> n <- numOfSimulations
>
> # dataMatrix contains n simulations over T+1 years (from 0 to T)
> dataMatrix <- matrix(1,nrow=n,ncol=T+1)
>
> YearEndIndex <- seq(1:T)/dt + 1
>
> PTIME <- proc.time()
> for(i in 1:n){
>
> Index_all <- seq(0,T,by=dt) + 1
> Index_YE <- seq(1:(T+1))
> time <- seq(0,T,by=dt)
>
> ZFZ <- rnorm(length(Index_all)-1,0,1)
>
> for(t in 2:length(Index_all)){
> Index_all[t] <- Index_all[t-1] + m*Index_all[t-1]*dt +
> s*Index_all[t-1]*sqrt(dt)*ZFZ[t-1]
> }
>
> print(paste("Simulation",i,"of",n,"done."),quote=FALSE)
> dataMatrix[i,2:(T+1)] <- t(Index_all[YearEndIndex])
> }
>
> tableName <- "dummy"
> write.table(dataMatrix,tableName,sep = ";")
>
> print(proc.time()-PTIME)
> }
>
>
> Without running any other program in the background yields (on my Mac)
>
> > indexGenerator(0.08,0.15,30,100)
> user system elapsed
> 19.739 0.220 19.961
> > indexGenerator(0.08,0.15,30,1000)
> user system elapsed
> 197.721 2.138 199.012
> >
>
> I figured out that the function can be made faster by rewriting the
> code but this doesn't answer my question why my MacBook is slower.
> Here some specifications:
>
> Modell-Identifizierung: MacBookPro4,1
> Prozessortyp: Intel Core 2 Duo
> Prozessorgeschwindigkeit: 2.4 GHz
> Anzahl der Prozessoren: 1
> Gesamtzahl der Kerne: 2
> L2-Cache: 3 MB
> Speicher: 2 GB
> Systemversion: Mac OS X 10.5.5 (9F33)
> Kernel-Version: Darwin 9.5.0
>
> Before I used a Dell Inspirion 510, running on Windows XP with a 1.7
> GHz processor and some lousy 512 MB RAM.
>
> The R-version in use is 2.8.o
>
> Cheers,
> Nils
>
>
>
> Am 25.10.2008 um 16:41 schrieb Simon Urbanek:
>
>>
>> On Oct 24, 2008, at 4:07 PM, Nils Rüfenacht wrote:
>>
>>> I recently changed from a 4 year old Dell running on Windows XP to
>>> a mew MacBook Pro running on OS X 10.5. I expected to save an
>>> amount of runtime when executing my R code now, but I was mistaken.
>>>
>>> I didn't figure out what the problem could be! Same code is
>>> running about 30% (!) slower now!
>>>
>>> Any suggestions?
>>>
>>
>> What about sharing the code with us? There is very little we can
>> say unless you share the code with us as well as the exact machine
>> specs (and compare the same version of R).
>>
>> Cheers,
>> Simon
>>
>
>
>
>
More information about the R-SIG-Mac
mailing list