2008-10-21 5 views
7

Est-ce que mon programme devrait supporter IA64, ou devrait-il supporter uniquement x64?Mon programme C++ devrait-il supporter IA64 ou seulement x64?

Je n'ai pas pu trouver facilement les ordinateurs IA64 moi-même. Est-ce que IA64 est mort? MS semble avoir un large support pour IA64, mais il m'a fallu beaucoup de temps pour trouver un IA64, et j'ai dû finir par l'obtenir sur eBay.

Répondre

7

Quel type de logiciel développez-vous? Si ce n'est pas un type d'application de centre de données ou une application crunching haut de gamme, je serais surpris s'il y avait une demande pour une version ia64. Et même alors, je pense que ce serait une situation où si vous devez demander si vous devriez le soutenir, vous n'avez probablement pas besoin de le faire.

Un couple de choses du haut de ma tête qui pourrait entraver un port ia64:

  • des outils tiers ou des bibliothèques que vous êtes en fonction des besoins pour le soutenir
  • accès non alignés qui vont largement inaperçu sur x86 et x64 causeront des maux de tête sur ia64

Bien sûr, je ne travaille pas pour Gartner ou IDC ou toute personne qui fait l'analyse du marché, vous devez donc prendre ce que je dis ici avec ce scepticisme que vous avez traîner.

Des clients ou des clients potentiels ont-ils posé des questions?

+1

Cela ne devrait-il pas être un travail I * DO * pour Gatner ou IDC, alors vous devriez être sceptique? –

2

Vous êtes la seule personne qualifiée pour juger si les ventes prévues couvriront les coûts de développement et de support.

-1

Si vous écrivez en C++, est-ce vraiment important? Ce que je veux dire, c'est que vous ne dites pas ce qui fait que votre programme a besoin de savoir sur l'architecture sous-jacente de la machine sur laquelle il fonctionne. De C++ lui-même, vous devriez être assez bien protégé contre les différences entre les deux. Bien sûr, tester sur une plate-forme ésotérique peut être difficile, mais devez-vous le tester vous-même sur toutes les plateformes que vous "soutenez"?

+1

Je dirais que oui, vous ne pouvez pas vendre un produit que vous n'avez pas testé. – quinmars

+1

Il y a aussi un coût beaucoup plus élevé que le développement. Le soutien, et l'assurance qualité, viennent à l'esprit en tant que principaux. –

+1

Et, bien sûr, si vous devez dépenser de l'argent pour obtenir de l'aide, vous voulez gagner suffisamment d'argent supplémentaire pour compenser cela. –

0

Je ne voudrais pas déranger avec le soutien IA64 à moins qu'un client demande expressément. Sinon, c'est juste une autre plate-forme à tester. Est-ce que Intel fabrique encore des processeurs IA64?

+1

Oui, la plate-forme IA64 est encore en vie et en croissance. C'est un excellent design de processeur. Dommage que nous soyons retenus par tout ce code existant. :( –

+0

Oui, la plate-forme IA64 est toujours en vie, ce que j'appellerais un design audacieux mais qui a échoué, car il a été très difficile d'écrire des compilateurs efficaces car il exploite le parallélisme au niveau de la compilation plutôt qu'à l'exécution. Et les processeurs WAAY sont plus chers qu'Opteron pour un gain clair. –

1

En théorie, en supposant tenir aux bonnes pratiques de programmation C++, vous ne devriez pas soin si ce que vous écrivez est un x64, IA64 ou même un SPARC ou PowerPC ou autre. Assurez-vous simplement que votre code est propre à 64 bits (comme ne pas supposer que les entiers et les pointeurs ont la même taille) et tout ira bien.

Sauf que ...

Il y a toujours les conditions marginales farfelues causées par des problèmes matériels inhabituels, compilateurs non conformes ou des coins pointus « définis par l'implémentation » dans votre langue. (C et C++ contiennent tous deux un grand nombre de ces « mise en œuvre défini » les choses!)

Alors ...

Vous voulez tester sur votre cible. Cela peut coûter très cher, mais il y a des endroits qui vous permettront de tester des applications sur une plate-forme matérielle donnée moyennant des frais. Si vous faites beaucoup de travail sur des plates-formes multiplateformes, il peut être moins cher de faire votre propre matériel, mais les petites boutiques et les plates-formes plus rares sont souvent mieux testés sur le matériel de centre de données loué.

1

Si vous avez accès à un IA64, il vaut vraiment la peine d'y faire fonctionner votre code. Le portage de votre code vers une autre architecture de CPU révèlera toutes sortes de problèmes cachés.

Vous pouvez avoir un dépassement de chaîne de 1 qui ne s'affiche pas sous Linux/Windows/x86 mais bloque le programme en raison de la disposition différente de la pile ou de l'alignement de la structure. Vous pourriez supposer que ~ 1UL == 0xFFFFFFFF. Je garde mon code C64 IA64 propre, mais j'ai déjà quelques machines parce que je suis fan.

Questions connexes