The problems we saw were also observed by Mathsoft on their Solaris 2.5
machine when they repeated my code, so neither the new 2.6 OS or our
multi-processor appears to be the cause of our problem. Mathsoft
suggested, "the version of malloc() we use on Solaris (and on most unix
machines except AIX and OSF/1) appears to slow down when their are lots
of small bits of memory allocated." That helped us understand why we
didn't see a problem with our old IBM RS/6000 (AIX) while we did see it
on our new Sun E450. Mathsoft has provided us with some malloc
replacements that we can try.
My "problem function" was actually a function that called about 30 other
functions and was certainly inefficient. I'm afraid that over time I
succumbed to the belief that my time was worth more than the computer's,
and I didn't worry much about inefficient programming. Mathsoft support
pointed out several inefficiencies in my code that I called a lot.
E.g.,
mean.na.omit <- function(x) mean(na.omit(x))
is much less efficient than
mean.na.omit <- function(x) { bad <- is.na(x); sum(x[!bad])/sum(!bad)
}
In fact, Mathsoft went on to suggest an even more effiencient function
for my particular application.
I now think that my problems were more the result of "allowing a
statistician (myself) to program" than of any substantial problems with
Splus or our Sun.
I again thank the many of you who personally responded to my question of
a couple weeks ago. And I'd likely to publicly state that Mathsoft
support was exceptionally helpful with this problem.
Allen Humbolt
Quantitative Analyst
Koch Industries, Inc.
HumboltA@kochind.com e-mail
(316) 828-7911 phone
(316) 828-8674 fax
-----------------------------------------------------------------------
This message was distributed by s-news@wubios.wustl.edu. To unsubscribe
send e-mail to s-news-request@wubios.wustl.edu with the BODY of the
message: unsubscribe s-news