tags:

views:

395

answers:

6

Should my program support IA64, or should it only support x64?

I haven't been able to easily find IA64 computers myself. Is IA64 dead?

MS seems to have a wide support for IA64, but it took me a long time to be able to find an IA64, and I had to end up getting it on eBay.

+2  A: 

You're the only person qualified to make the judgement of whether expected sales will cover the cost of developing and supporting it.

Menkboy
A: 

If you're writing in C++, does it really matter? What I mean is, you don't say what makes your program "need to know" about the underlying architecture of the machine it is running on. From C++ itself, you should be fairly well protected against any differences between the two. Of course, testing on an esoteric platform might be difficult, but do you have to test it yourself on all platforms you "support"?

unwind
I'd say yes, you cannot sell a product that you haven't tested.
quinmars
Also there is a much bigger cost than just development. Support, and QA come to mind as the major ones.
Brian R. Bondy
And, of course, if you have to spend money on support, you do want to make enough additional money to compensate for that.
David Thornley
+5  A: 

What kind of software do you develop? If it's not a data center type of application or a high-end number crunching app, I'd be surprised if there were any demand for an ia64 version. And even then, I'd think it would be a situation where if you have to ask if you should support it, you probably don't need to.

A couple things off the top of my head that might hamper an ia64 port:

  • any third party tools or libraries you're depending on need to support it
  • unaligned accesses that go largely unnoticed on x86 and x64 will cause headaches on ia64

Of course, I don't work for Gartner or IDC or anyone who does market analysis, so you should take what I say here with whatever skepticism you have lying around.

Have any customers or potential customers inquired?

Michael Burr
Shouldn't that be a I *DO* work for Gatner or IDC so you should be skeptical ?
Martin Beckett
A: 

I wouldn't bother with IA64 support unless a client specifically asks for it. Otherwise, it's just another platform to test. Does Intel still make any IA64-based processors?

Ferruccio
Yes, the IA64 platform is still alive and growing. It's an excellent processor design. Too bad we're held back by all this legacy code. :(
Brian Knoblauch
Yes, the IA64 platform is still alive. I would call it a bold but failed design. It has been very hard to write effective compilers for it, since it exploits instruction-level parallelism at compile-time rather than run-time. And the processors are WAAY more expensive than Opteron for no clear gain.
Dan
+1  A: 

In theory, assuming you stick to good C++ programming practices, you shouldn't care if what you're writing to is an x64, IA64 or even a SPARC or PowerPC or whatever. Just ensure your code is 64-bit clean (like not assuming that integers and pointers are the same size) and you'll be fine.

Except...

There's always the oddball fringe conditions caused by unusual hardware issues, non-conforming compilers or "implementation-defined" sharp corners in your language. (C and C++ both contain a lot of those "implementation defined" things!)

So...

You'll want to test on your target. This could get very expensive, but there are places that will let you test applications on a given hardware platform for a fee. If you do a lot of work on cross-platform stuff it may be cheapest to go in-house for your hardware, but small shops and rarer platforms are often best tested on rented data centre hardware.

JUST MY correct OPINION
A: 

If you have access to an IA64, then it is absolutely worth it to make your code run on it. Porting your code to another CPU architecture will reveal all sorts of hidden problems.

You might have a string overflow by 1 that doesn't show itself on Linux/Windows/x86 but crashes the program because of different stack layout or structure alignment. You might be assuming that ~1UL == 0xFFFFFFFF.

I keep my C++ code IA64 clean, but I already have a couple of machines because I'm a fan.

Zan Lynx