Здравствуйте, shvellerr, Вы писали:
S>Пишу небольшой проектик на с++ (в учебных целях)понадобились быстрые вычисления.
1) Если хочешь научиться быстрым вычислениям, то учишься писать на ВЫСОКОУРОВНЕВЫХ языках, и использовать библиотеки, всякие средства распараллеливания, ВЫСОКОУРОВНЕВЫЕ тоже ну и интрисики стоит заботать. Но главное тут не это, а алгоритмы и структуры данных. Тема оптимизации вычислений уже очень хорошо проработана, так что если ты сможешь выбрать такиен структуры данных и алгоритмы, что они хорошо лягут на архитектуру (ну, типа, загрузят все ядра GPU, например, или все ядра/головы компика и никто нигде не будет ждать, пока какие-то данные куда-то прокачаются или там на синхронизациях и т. п.), то всё будет уже быстро.
2) Ботаешь хороший профайлер, типа интеловского. И с ним смотришь чего насколько быстро. Ну и прямые замеры производительности системы под реальной стрессовой нагрузкой рулят.
3) Если таки хочешь научиться, не быстро считать, а асму, то пишешь нужные функции на макроасме и просто включаешь в проект. За одно с Сишными соглашениеями об именованиях и вызовах разберёшься + конструкцию extern "C" освоишь...
4) А вот если тебе для повышения быстродействия хочется замутить свой JIT-компилятор (типа какие-то данные трансформируются в код, после чего этот код прожёвывает другие данные), то вот тогда asm вставки рулят, и то не всегда...
Все эмоциональные формулировки не соотвествуют действительному положению вещей и приведены мной исключительно "ради красного словца". За корректными формулировками и неискажённым изложением идей, следует обращаться к их автором или воспользоваться поиском