2008

Access to a “supercomputer”: the first thing I checked was whether it was really 64-bit

In one of our courses we were given access to a “supercomputer”, as people called it then. It was a computing grid: ui.grid.lumii.lv at the University of Latvia and the BalticGrid network, where you could send jobs. And it was 64-bit. That was a lot back then: at home we still had 32-bit computers. Everyone said: “Oh, there’s lots of memory there.” But I was interested in something else first.

We got an SSH console, some commands, a compiler. I immediately went to see what these 64 bits were about and ran a speed test. Take a billion iterations and multiply 32-bit numbers first, then 64-bit ones. On an ordinary 32-bit computer multiplying long numbers takes, say, an order of magnitude longer. Here, bang, the same speed. Really 64 bits.

My friends were amazed by the very approach. They thought of a 64-bit processor only in terms of memory: wider addressing, and that’s it. And I told them: “No, all its registers are long too.” In olympiad programming you often need to add big numbers and write your own long arithmetic, and here half of it comes out of the box.

From the homework we did there in January 2008 I still have the report. A simple loop from zero to two billion took 17 seconds on ui.grid.lumii.lv and 21 in the BalticGrid environment. Then I wrote a check of whether the 96-bit number 0x19D971EC4223A489D6986D7B is prime. The job landed on an Itanium 2 node, ran for 1256 seconds and found a divisor, 0x3B9ACA09, that is 1,000,000,009. With four threads it took 752 seconds, and the MPI version went off to a machine in Kaunas and took 1119.

I never found any real use for it myself. If something needed computing, it was easier to run it on my own computer, even if it took half a day, than to go to the “supercomputer”: upload files, compile, put a job in the queue and run into limits.