latest posts

Having been using Ross Johnson's wonderful POSIX Win32 port for some time now, I was surprised to find an ia64/Win32 port didn't exist. In thinking about it further, with the announcement that Microsoft was phasing out Itanium support nearly 4 years ago to the day, I guess I shouldn't be too surprised.

For those that are stuck with an ia64/Win32 project or are just now wanting to mess around with the platform, you can download the latest (at the time of this writing is 2.9.1) pThreads for ia64 port I did. The pre-compiled dll is in the Pre-built.2\dll\ia64 folder and the pre-compiled lib is in the Pre-built.2\lib\ia64 folder. Also included is the VS2013 solution (originally there was only a VC++ 6.0 Workspace file).

In a future post I will detail my experience with Windows Server 2008 R2 for Itanium on my HP zx2000 Itanium 2 machine, along with native ia64/Win32 releases of jcBench and jcDBench.

After getting my Silicon Graphics Prism ready to go on Saturday, and then getting the Intel C++ Compiler up and running on Sunday, my first task: getting jcBENCH ported over.

Not having done Linux development in a while (IRIX is similar, but different), I had to go through a few hurdles. One of which being, remembering the compiler macro for detecting Linux versus Win32 and IRIX. Luckily Sourceforge has a great listing of all the macros. After pushing through a few timespec_t issues (Linux's version is timespec), I was able to get it ported over while leaving in my #ifdef to retain portability.

A couple notes for me to remember and in case some else has the same issues:
*To fix the "undefined reference to 'clock_gettime' and 'clock_settime'"
-include "-l rt" to your g++ argument list

So how does my Dual Intel Itanium 2 1.3ghz/3mb L3 Cache do?

[shell] jcBENCH 0.6.522.0826(ia64/Linux Edition) (C) 2012-2013 Jarred Capellman CPU Information --------------------- Manufacturer: GenuineIntel Model: Itanium 2 Count: 2x1300.000000mhz Architecture: IA-64 --------------------- Running Benchmark.... Integer: 63.0576 seconds Floating Point: 119.499 seconds [/shell] In comparison to my other machines, Integer performance with both CPUs is some where between a single CPU of an A6-3500 (3x2.1ghz) and an A10-4600M (4x2.3ghz).

In comparison, Floating Pointing performance with both CPUs faired much better in that it was some where between my old Phenom II X2 545 (2x3ghz) and an A6-3500 (3x2.1ghz).

You can download the initial ia64/linux release here.

What's next? Now that I have some baseline metrics, tomorrow night I will swap in the spare 1.6ghz/9mb L2 Cache Itanium 2 CPUs I purchased a while back for my Silicon Graphics Altix 350 systems. Stay tuned for more details.
A big thanks goes to jan-jaap on the Nekochan Forums for pointing out you can, if you're only doing non-commercial development. This license applies to x86 and AMD64 as well.

First, go to Intel's site to register an account (it doesn't work in IE 11 at least in the Windows 8.1 Preview).

Second, you'll receive an email with your license key, be sure to keep this handy as the installation requires it to activate.

After clicking the download button in the email, then click Additional downloads, updates and versions.:
Intel Cpp Suite
And then select Intel C++/Fortran Compiler 11.1 Update 9. As of this writing the file is l_cproc_p_11.1.080_ia64.tgz.

After downloading it, extract it and run the install.sh:
[shell] tar -zxvf l_cproc_p_11.1.080_ia64.tgz ./install.sh [/shell] The install process is pretty trivial - afterwards you'll have access to the Intel C++ compiler installed to /opt/intel/Compiler/11.1/080/bin/ia64 (assuming you installed it to the default folder).

To compile with the Intel Compiler just call icc. At this point it would make sense to add the Intel Compiler to your PATH.

Hope it helps someone out - I would highly suggest if you have any inclination of doing ia64 development, to get it downloaded now before it becomes unavailable at some point.

Introduction

Back in May of this year I purchased a Silicon Graphics Prism. I had been looking to obtain one since January when one went for next to nothing on eBay. While not being a big fan of Intel based machines let alone ia64 – the machine itself, similar to the pinnacle of SGI’s MIPS line, the Tezro (which I love and detailed in my Dual to Quad upgrade here) intrigued me enough to want to play with it.

What is it?

Silicon Graphics Prism (Front)

Silicon Graphics Prism (Mainboard)

Silicon Graphics Prism (Nodeboard)

Silicon Graphics Prism (AMD FireGL X3 Cards)

The system itself for those unaware, the Silicon Graphics Prism supports:
-Up to 2 1.6ghz Itaniums with 9mb of cache
-Up to 24gb (12x2gb) of DDR (Registered/ECC)
-Dual AMD FireGL X3 (X800 256mb) AGP cards (yes – it has 2 AGP 8X slots)
-4 64bit PCI-X buses spread across 8 64 bit 133mhz PCI-X slots (1064 mb/s)
-4 USB 2.0 ports
-Built-in copper gigabit
-2 3.5” SATA I bays

Step One - Bypassing the EFI Password

My Prism unfortunately didn’t come with a hard drive and what made matters worse – the EFI (the newer replacement for the traditional BIOS) had a password preventing any action after bootup.

After digging through virtually piece of documentation I could find and resorting to posting on the Nekochan Forums for some ideas – one poster suggested clearing the NVRAM or pulling the battery. Unfortunately as it turns out the battery is soldered to the node board. Thus leaving it to the highly undocumented POD (Power On Diagnostics) mode over the L1 Controller (Serial connector on the back of the Prism). [shell] EFI Boot Manager ver 1.10 [14.62] Partition 0: Enabled Disabled CBricks 1 Nodes 3 0 RBricks 0 CPUs 2 0 IOBricks 1 Mem(GB) 16 0 Password not supplied -- keyboard is locked. Seg: 1 Bus: 0 Dev: 1 Func: 0 - SGI IOC4 ATA detected: Firmware Rev 83 Ata(Primary,Master) MATSHITADVD-ROM SR-8178 PZ21 Seg: 1 Bus: 0 Dev: 3 Func: 0 - Vitesse Serial ATA detected: Firmware Rev 1 Sata(Pun2,Lun0) Hitachi HDS72105 JP2OA50E JP1532FR32P54K Broadcom NetXtreme Gigabit Ethernet (BCM5701) is detected (PCI) EFI Boot Manager ver 1.10 [14.62] Partition 0: Enabled Disabled CBricks 1 Nodes 3 0 RBricks 0 CPUs 2 0 IOBricks 1 Mem(GB) 16 0 Loading device drivers EFI Boot Manager ver 1.10 [14.62] Partition 0: Enabled Disabled CBricks 1 Nodes 3 0 RBricks 0 CPUs 2 0 IOBricks 1 Mem(GB) 16 0 Please select a boot option SUSE Linux Enterprise Server 11 SLES10 SLES10_bak EFI Shell [Built-in] CDROM Disk2SLES Boot option maintenance menu Use ^ and v to change option(s). Use Enter to select an option Loading: SUSE Linux Enterprise Server 11 Load of SUSE Linux Enterprise Server 11 failed: Not Found Loading: SLES10 Load of SLES10 failed: Not Found Loading: SLES10_bak Load of SLES10_bak failed: Not Found Loading: EFI Shell [Built-in] EFI Shell version 1.10 [14.62] Device mapping table blk0 : Acpi(PNP0A03,1)/Pci(1|0)/Ata(Primary,Master) blk1 : Acpi(PNP0A03,1)/Pci(3|0)/Sata(Pun2,Lun0) Shell> [/shell] By issuing a nmi command over the L1 Controller (accessible by hitting Control + t) it'll switch you to POD Mode. After which use the initalllogs command which will clear all of the EFI NVRAM Settings (the password, boot menu, date/time etc). [shell] 2 000: POD SysCt Cac> initalllogs *** This must be run only after NUMAlink discovery is complete. *** This will clear all previous log variables such as: *** moduleids, nodeids, etc. for all nodes. Clear all logs environment variables, and aliases ? [n] y Clearing nasid 0... Clearing nasid 0 EFI variables................... Clearing nasid 0 error log........... All PROM logs cleared! 2 000: POD SysCt Cac> exit [/shell]

Step Two - Getting an OS on the Prism

Now that I was able to actually "use" it - I needed to install an OS. With the Prism you have a couple choices. If you want to run it "headless" meaning without physically connecting a monitor and using it as a desktop - you can run Debian 5.x to 6.x, Suse Enterprise Linux 9 to 11 SP2, and Red Hat Enterprise Linux 4.x to 6.4.

However, if you want to run it as a desktop like I did - you'll be stuck using Suse Enterprise Linux 9 SP3 or Red Hat Enterprise Linux (not sure of the version). In addition you will need the Silicon Graphics ProPack 4 Sp4 (be careful to not obtain any later version as they dropped support for the Prism). The ProPack installs a special kernel that has support for the custom dual AGP setup found in the Prism along with the FireGL cards themselves.

To review you will need the following if you are wanting to go down the graphics route:
-Suse Enterprise Linux (SLES) 9 base ISO Images (6 CDs, freely available on Novell as of this writing)
-Suse Enterprise Linux (SLES) 9 SP3 ISO Images (3 CDs, available via support contract only or if you happen to get a prism with the RPMS - store them for later installation)
-Silicon Graphics ProPack 4 SP4 ISO Images (3 CDs, very rare for them to turn up on eBay and expensive otherwise)

From this point on I'll assume you have the CDs mentioned above.

Suse Enterprise Linux 9 SP3 Installation
1. Insert the SLES 9 SP3 CD 1 in the DVD drive of the Prism (the stock SLES 9 CD 1 will not work)
2. Proceed through the installation (occasionally it'll refer to CD 1 as SLES 9 CD 1 not SLES 9 SP3 CD 1, so if it doesn't like the CD you entered try the other).

After the installation completes and you find yourself staring at the BASH shell I highly suggest keeping an extracted copy of all 9 of the SLES 9 CDs on your hard drive.

I simply created an isos directory (with mkdir) and then did a cp -r /media/dvd . to copy the DVD. A faster approach would be to extract the ISO images on your PC or other machine, put them on a USB thumb drive, mount the USB drive (was /dev/sdb1 for me) and simply copy the contents of the thumb drive to your newly created folder. I did this for the Propack CDs as well. It not only is faster, but then when you go to install a new package that has a dependency you don't need to swap CDs.

To get YaST ready for future installs (including the next step), issue a /sbin/yast from your shell, which will present you with the YaST Control Center.

Tab over to the Change Source of Installation option on the right like so: YaST SLES 9
Go through all of the CDs by selecting Add and then selecting Local Directory.... When completed your screen should look very similar to this:
YaST SLES 9

Step Three - Installing the Propack

Now that SLES 9 SP3 is installed on your Prism, you will need to install the ProPack. If you followed the last steps you have already added the Propack 3 CD set to your hard drive and added the path to the available sources for YaST to install from.
To get started return to the initial screen of the YaST Control Center and select Install and Remove Software.

Once on the Install and Remove Software screen select Filters from the menu option like so:
YaST SLES 9
Then select Selections and scroll all the way down and select all of the SGI ProPack options with the spacebar:
YaST SLES 9

You may have a few dependencies that YaST will determine you need - simply accept them and shortly after you should see it installing:
YaST SLES 9

After a reboot you should see SLES 9 with full graphics:
SLES 9 SP3 installed with the ProPack

Step Four - Next Steps

Now that SLES 9 is installed, my primary goal for the Prism was to do C++ development on it. The two biggest components for that are a compiler and version control. Both will be detailed in future blog posts so stay tuned. In addition, I will begin exploring PCI-X expansion options like a SATA II RAID card to compare performance with the built in IO10 SATA controller.