Wednesday, June 08, 2005

Sun CTO on divergent processor ISAs

Worth a read

Tree felling around Sankey

I was alarmed to see trees lining the walking-track around Sankey Tank being felled this morning. But, on enquiring at the Deccan Herald office, I found out that they're following a carefully laid-out development plan for the peripheral areas of the lake. A committee is supposedly in place to carry out the planning & implementation of this. The reporter was kind enough to provide details about this. He even said that 2 new trees will be grown in place of every OLD tree chopped there. But, when I asked him if such "committees" were not acting as per their own whims & fancies, he just said, "We're hopeful that that's not the case & that all this is not an eyewash.We're keeping an eye on developments".
In retrospect, the press is probably the last powerful institution that's capable of protecting Bangalore's ecological balance. (Sigh)

Tuesday, June 07, 2005

A Mac laptop running on Niagara?

Read this blog on ZDNet that goes like-

"So what can Apple do? What they should have done two years ago: hop into bed with Sun. Despite its current misadventure with Linux, Sun isn’t in the generic desktop computer business. The Java desktop is cool, but it’s a solution driven by necessity, not excellence. In comparison, putting MacOS X on the Sun Ray desktop would be an insanely great solution for Sun while having Sun’s sales people push SPARC based Macs onto corporate desktops would greatly strengthen Apple.

Most importantly, SPARC is an open specification with a number of fully qualified fabs. In the long term Apple wouldn’t be trapped again and in the short term the extra volume would improve prospects for both companies. Strategically, it just doesn’t get any better than that.

Niagara rocks. You want low power use for a laptop? How about an eight way 1.4Ghz SMP core with TCP/IP and cryptography done in hardware - at 65 watts flat out. There are some serious software issues, but get past them and you’ve got eight to ten Xeons in the box - at 65 watts.

Sun’s president, Jonathan Schwartz, put a nice invitation for you in his blog last Sunday. Maybe you should think about it..."


Sun folks(you need to pursue this...) & Apple folks, ARE YOU LISTENING??? Isn't this worth a try?

Monday, June 06, 2005

Sun:leading everywhere

Some really heartening developments :

1)The E20K kicks IBM's 32 way power 5 based server and one from HP that has a similar (but in the end - inferior) configuration.

2)The new netBeans gui builder simply rocks!!!

3) netBeans draws level with eclipse

4)Sun acquires storagetek to add to the procom IP acquisition and tarantella(on the secure,remote desktop front).

Hopefully, all these will see sun hitting back hard at its competitors in the quarters to come.

Tuesday, May 31, 2005

Why clone is slower than newInstance

Ken Russell from the Java HotSpot VM Group, Sun Microsystems writes in java.net forums:
"Actually in the HotSpot JVM Object.clone() is not currently heavily optimized, while new instance is. You can feel free to file an RFE about this in the bug database. You can work around this problem by overriding clone() and manually allocate the new instance and assign the data into it. In fact, I think this is already probably necessary once your data structures get more complicated, which is why slow performance of Object.clone() hasn't shown up on our performance radar.
P.S. Here's a revised version of your test case which gets rid of startup transients:"


public class Main {
private boolean flag = true;
private String string = "Hello";
private int i = 0;

static class Child extends Main implements Cloneable {
private boolean flag2 = false;
private String string2 = "World";
private int i2 = -1;
}

private static int count = 1000000;

public static void testClone() throws CloneNotSupportedException {
Child child = new Child();
int res = 0;
long startTime = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
Child child2 = (Child) child.clone();
res += child2.i2;
}
long stopTime = System.currentTimeMillis();
System.out.println("" + count + " clones took " +
(stopTime - startTime) + " ms (dummy result = " + res + ")");
}

public static void testNewInstance() {
int res = 0;
long startTime = System.currentTimeMillis();
for (int i = 0; i < count; i++) {
Child child = new Child();
res += child.i2;
}
long stopTime = System.currentTimeMillis();
System.out.println("" + count + " new operations took " +
(stopTime - startTime) + " ms (dummy result = " + res + ")");
}

public static void main(String[] args) throws CloneNotSupportedException {
testClone();
testClone();
testClone();
testNewInstance();
testNewInstance();
testNewInstance();
}
}

Friday, May 27, 2005

Slashdot: In 72 Hours, Your Ban Will Be Lifted

Has this happened to you?
"Your Headline Reader Has Been Banned".Your RSS reader is abusing the Slashdot server. You are requesting pages more often than our terms of service allow. "Do Not Bother Contacting Us For 72 Hours".Very funny.
The faq page says this

Wednesday, May 25, 2005

Cartoon blogging

This is simply fantastic. This guy's got talent.

Friday, May 20, 2005

Thursday, May 19, 2005

Netbeans mobility pack ROCKS!!!!!

Sat through the Sun tech days session on writing MIDP apps with netBeans. Chuk-Munn Lee simply rocks!! Now, the NB mobility pack is an amazing piece of software -beautifully crafted and shockingly productive. It made me want to give up J2SE dev & take up J2ME full time. :p

More on the J2ME capabilities of NB here and here.

Friday, April 29, 2005

Good Q&A on Jini

An interview with Jim Waldo
An old one, but answers a number of questions that people continue to ask even now.

btw, he blogs here

Monday, April 25, 2005

The first Dual core Opteron servers are out.

Sun announces V40z's with dual core opterons. Sets performance records with the new irons.

netBeans build

Just built netBeans from the sources on my machine. :-)
Check these links for more info...

http://www.netbeans.org/kb/articles/buildAndRun.html#adding_modules
http://www.netbeans.org/kb/articles/start_dev_NB.html

Thursday, April 21, 2005

DTracing Java

If you're a java developer & you haven't read this entry of Bryan Cantrill's blog, you really have missed something.
One word - IT ROCKS!!!
Such level of profiling & so many intricate details of the method calls, all in a very comprehensible manner is, like the blog says, without precedent.

Wednesday, April 13, 2005

Yet another tp survey

A survey that tries to guess "What kind of a movie you belong to"...

I belong to....
Pirates of the Caribbean!

What movie Do you Belong in?(many different outcomes!)
brought to you by Quizilla
Took a toefl-like quiz that measures the extent to which one's english is americanized (read polluted). I didn't do very badly, actually, considering my exposure to american claptrap - ;-)

English Genius
You scored 92% Beginner, 100% Intermediate, 100% Advanced, and 93% Expert!
You did so extremely well, even I
can't find a word to describe your excellence! You have the uncommon
intelligence necessary to understand things that most people don't. You
have an extensive vocabulary, and you're not afraid to use it properly!
Way to go!

My test tracked 4 variables How you compared to other people your age and gender:
You scored higher than 37% on Beginner
You scored higher than 72% on Intermediate
You scored higher than 88% on Advanced
You scored higher than 98% on Expert

The Commonly Confused Words Test on Ok Cupid

Thursday, April 07, 2005

Why slashdot plays home to the anti sun flame-throwers

This is the first plausible reason you'll find when you try figuring out why the slashdot editors so readily approve anti-sun posts - like this anonymous comment at Grisanzio's(opensolaris community manager) blog suggests -
"I think Slashdot has been specifically targetting Sun, lately, probably because their behind-the-scenes financial interests revolve around Linux." Isn't that obvious?

Wednesday, April 06, 2005

Excerpts from Tom Ball's Blog: Exceptional Debugging

A rather clever way of checking whether a class exists in the current class path:

public boolean classExists(String name) {
String resource = name.replace('.','/') + ".class";
return getClass().getClassLoader().getResource(resource) != null;
}
This was suggested by a java.net use "brucechapman" in response to Tom Ball's latest blog entry - Exceptional Debugging

Thursday, March 24, 2005

Solaris Sys admin guide collection

Useful link if you want to tune a few parameters for your app (not that i do.. :-) )
Sys admin guide collection
Here's a good collection of Zone demos.

Tuesday, March 15, 2005

Why Eclipse users are moving to NetBeans

Good read...http://cld.blog-city.com/read/1126337.htm
No surprises there. Eclipse's SWT sucks on Linux while NetBeans behaves like the angel that it is even on Windows. Why? NetBeans' UI It's pure java. No native code at the Window Manager Level. It doesn't try to make native calls for showing every small widget (like SWT does). SWT, that wy, is an antithesis to the java philosophy (where you have all the native code only at the VM level and avoid, to the extent, possible, native calls at your app level to keep your code truly class platform). Naive windows users fall for the "oh so windows-like" look and feel on exlipse on Windoze. Try it on Linux or Mac and you'll know the difference (in speed & LAF) between Eclipse and NetBeans. Eclipse looks broken & frayed on all other platforms except Windows. And if like Eclipse's "native" LaF so much, i'm afraid, you're tending towards an C++ based Java IDE like MS J++ (and you have not right to call yourself a true blue Java dude).

Monday, March 14, 2005

Vintage Jonathan!

Jonathan is simply awesome in his latest blog.

I'm quoting the entire entry here, just for the reader's benefit...

Quoted blog Begins:


The Economies of Scale - The Scale in Economy



One of my best friends in life started his professional career at Carnegie Mellon University, where for a while he worked (back in the 80's) on the challenges surrounding parallel computing. Back then, it was a relatively esoteric field, in which one of the challenges was finding problems that lent themselves to parallel approaches, and another was trying to build programming models that made those problems tractable.


Spooling forward about 20 years (yipes), during the recent Boston Red Sox victory, MLB.com served 100,000,000 page views to 10,000,000 unique visitors. Each doing roughly the same thing. Talk about massive parallelism, it's in front of our eyes. The internet itself has yielded the world's largest parallel applications - from instant messaging, to bidding on beanie babies.


Now Sun has long been an investor in parallelism. First, we built systems capable of managing tremendous load (we're honored to supply the infrastructure under America's baseball addiction); and as importantly, we built an operating system that knew how to manage multiple threads of execution. Managing parallel "threads," historically one per CPU, is key to scalability - simply put, the more work you've got to do, the more CPU's you throw at the problem. And having an operating system that knows how to run efficiently across 100's of cpu's is a handy thing, at the core of Solaris's reputation for "scalability." Standing on the shoulders of giants, the Java platform was built with parallelism in mind, too.


Now oddly enough, despite the crises introduced when businesses have insufficient capacity, more often, businesses have too much capacity - average utilization in a datacenter is something like 15%. Which means most businesses waste enormous sums of the money on systems (not to mention the concomitant waste in power to keep dormant systems on, cooled and housed). Mainframes, historically, had very high utilization. Why? They were (and are) incredibly expensive, but they also have a feature called "logical partitioning" (LPARs) which allows big systems to be divided into many smaller mainframes. Until this year, no non-mainframe operating system offered logical partitioning. (Paraphrasing Gilder, "you waste what's cheap." Jonathan's corollary, "Until you build your whole datacenter out of it.") That is, until a few weeks ago.


One of the key features in Solaris 10 is just this - "containers" are logical partitions that allow a single computer to behave like an unlimited number of smaller systems, with little/no overhead. Reboot a partition in 3 seconds, keep disparate system stacks on the same computer, assign different IP addresses or passwords to each, treat them like different computers, and use them to consolidate all those otherwise 15% utilized machines - sky's the limit (on any qualified hardware platform), and with it, customers can now drive utilization through the roof. With no new licensing charges. (And personally, I'm a fan of 3 second reboots.)


But back to baseball. One thing to recognize with businesses like MLB.com (and Google and Amazon and eBay) is that system level performance is now all about parallelism - defined as the art of behaving well when 3,000,000 baseball viewers (or searchers or shoppers or bidders) arrive to use your service. Sun, in fact, saw two years ago what Intel saw this year, that the gigahertz race was over. So we biased our entire system roadmap to "thread level paralellism," and started designing systems with many, rather than one, thread per CPU. Most SPARC systems now ship with two threads of execution per socket (standard in all UltraSPARC IV systems). But that's just a baby step toward true parallelism.


How parallel can we get? Niagara chips, built into our upcoming Ontario systems, will feature 8 cores, each with 4 parallel threads of execution - 8 times 4 yields a 32 way system - on a single chip. These systems will consume far less electricity and space than traditional system designs - and will be optimized for MLB.com style applications: thread sensitive, big data, throughput oriented apps. Moreover, they'll drop our customers' power bills and real estate costs - which may not sound like the class of problem today's CIO cares about... until you actually talk to a CIO. Massive power and space bills are a big problem, and the physics of cooling a space heater is a more popular topic than you'd think. (btw, a dirty little secret - remember California's power crisis a few year's back? One of the leading suspects? Computers chewing up huge amounts of power, and producing heat, which required air conditioners, which chewed up even more power...)


As we scale out these systems, it's perfectly reasonable to expect greater and greater levels of parallelism. And the good news is not only do Solaris and Java (and most of the Java Enterprise System) eat threads for lunch, but with logical partitioning, we can deploy multiple workloads on the same chip, driving massive improvements in productivity (of capital, power, real estate and system operators).


But let's not stop there. Simultaneously, much the same inefficiencies described above have been plaguing the storage world. A few years back, "SSP's," or storage service providers, began aggregating storage requirements across very large customer sets, providing storage as a service. Most SSP's found themselves stymied by the diversity of customer they were serving. Each customer, or application opportunity, posed differing performance requirements (speed vs. replication/redundancy vs. density, eg). This blew their utilization metrics. Before the advent of virtualization, SSP's had to configure one storage system per customer. And that's one of the reasons they failed - low utilization drove high fixed costs.


So that was the primary motivation behind the introduction of containers into our storage systems. The single biggest innovation in our 6920's is their ability to be divvied up into a herd of logical micro-systems, allowing many customers or application requirements to be aggregated onto one box, with each container presenting its own optimized settings/configurations. This drives consolidation and utilization - and when linked to Solaris, allows for each Solaris container to leverage a dedicated storage container. Again, driving not simply scale, but economy.



On top of all this, the same challenge has plagued the network world - diverse security requirements, and a desire to partition networks into functional or application domains, have driven a proliferation of "subnets" for applications, or departments. HR, Finance, Operations and Legal, for example, each require their own VLANs (virtual local area networks), the result of which is a gradual increase in partitioning, paired with a creeping inefficiency in network utilization - as the static allocation of subnets outpace anyone's ability to manage them. (If you recall, prior to their downfall, Enron - one of the beneficiaries of California's power crisis - was setting out to create a market for surplus network capacity - nice idea, turned out to be tough to execute).


This was the primary motivation behind Sun's building containers in to our application switches - the devices that now sit in front of computing and storage racks, to help optimize performance of basic functions (network partitioning, security acceleration and load balancing, for example). The network itself can be divided into individual network containers, or virtual subnets, and programatically reprovisioned as loads change.


Meaning that a customer can now divide any Sun system into logical partitions or containers, each of which draws on or links with a logically partitioned slice of computing, storage and networking capacity. Which presents the market with an incredible opportunity to drive utilization up, and exit being one of the most inefficient (and environmentally wasteful - where are the protests?).


Which is a long way of saying the internet is the ultimate parallel computing application - millions, and billions, of people doing roughly the same thing, creating a massive opportunity for companies that solve the problems not only with scale, but with economy. A unit of computing has been detached from a CPU, to whatever a baseball fan wants at MLB.com. Or a bidder wants at eBay. Or a buyer at Amazon. Can you imagine how big a datacenter MLB.com would have to build if we were still in a mode of thinking each customer got their own CPU?


Just think about that power bill.


_________________


Some other thoughts:



What happens to software licensing in a virtualized world? What's a CPU in a per-CPU license when the system you're running has 32 independent threads? An anachronism in my book. Can you imagine if MLB.com charged by the CPU? That's why all software from Sun, from the OS to the middleware, will be priced by the "socket" or employee. We believe the rest of the industry should move in the same direction.


Who's the ultimate beneficiary of this mass virtualization? In the short run, customers who can now both recover dormant capacity and boost productivity (consolidate to Solaris 10, UltraSPARC IV, our 6920's or our app switches - have yourself a "look at all this capital I freed up!" experience, and guarantee yourself a spot at your CFO's summer party).


But the ultimate beneficiary may be the company that deploys all these systems - and can link together, as well as dynamically provision across, it in its entirety. The combinatorics are staggering - thousands of containers, against thousands of threads against the same orders of magnitude in storage and network partitions. That's some serious scale. Requiring some serious economy in provisioning and operation.


So what business could possibly require or operate infrastructure at that scale? Sun's Grid, of course. No reason to think we won't be serving one of the largest markets in the world - driving utilization to be both prudent, and responsible.




(End of quoted Blog)

This man has SOME talent, doesn't he? How can you not be his fan???