1. Под "алгоритмы пишутся" я имел в виду, например, программу на C. Можно пояснить, как такая программа привязана к архитектуре?
2. Про ускорение - см. тесты про long long выше в этом топике. Компилятор так же может оптимизировать один и тот же код под разные архитектуры, например, используя выравнивание структур данных в памяти.
1. Индус напишет на Си, на голом MSVS, его коллега из россии напишет со вставками для SSE3, их коллега из Венгрии со вставками для 3DNow!, а их коллега из Китая напишет определение типа процессора, количества ядер, задействует блоки SSE3/3DNow! в зависиомсти от типа процессора, причем с поддержкой 64 бит. И вот как бы Индус не компилил под 64 бита свой проект, а все остальные проекты будут работать быстрее.
2. Компилятор будет делать как я скажу, а не как он хочет. Если меня устраивают его оптимизации, то мое право с ними согласиться, но если меня не устраивает массив в памяти в 1,2Гб вместо 600Мб лишь потому что компилятор "подравнял", то я от него откажусь, да и прироста в скорости от такого выравнивания не будет, я уже приводил пример, 2+2 достаточно 3 бита, а процессор будет ворочать все 64. Другое дело что нет разницы между 2+2 и 20000+20000. А если нет разницы, то где она возьмется? Только на типах данных >32 бит например. Тот же WinRAR на 64 битах работает быстрее не от того что Рошал перекомпилил проект.