Deutsch
Germany.ruФорумы → Архив Досок→ Программирование

Как сконвертировать GNU-C вложенные функции в лямбды С++ и чтоб переносимо

03.02.19 11:28
Re: Как сконвертировать GNU-C вложенные функции в лямбды С++ и чтоб переносимо
 
  ilghiz знакомое лицо
в ответ LifeRider 02.02.19 20:23, Последний раз изменено 03.02.19 15:36 (ilghiz)

Спасибо за интересные обсуждения и советы!


> gnu-компилятор для фортрана - это ни о чем, там разрыв в производительности с Intel Fortran Compiler(IFC)/Portland Group Compiler (PGI) - громадный... По-моему код, скомпилированный PGI был сильно быстрее, точно не помню


да, сейчас это верно. Был довольно большой промежуток времени (начало 2000) когда гнутый компилер уступал на проценты, но гемор по подцеплянию icc/pgcc на различные кластерные платформы был тот еще, то есть суммарно GNU был и удобнее, и портабельнее, и, при понимании специфики не уступал по производительности платным компиляторам . Тогда мы и завязались на GNU. Завязавшись на него, захотелось пользовать весь функционал, а конкретно передачу многомерных массивов по аргументам функций (чтоб от Фортрана отказаться) и использование вложенных функций. Наличие этих возможностей позволяло писать программы и с большей скоростью отладки и с большой скоростью работы по сравнению с остальными компиллерами, которые этот функционал не поддерживали. Была надежда, что этот функционал рано или поздно появится в стандарте С и его начнут поддерживать остальные компиляторы. Вот долгое время наш софт так в GNU сидел и продолжал развиваться.


Сейчас надо перейти на стандарт языка (хоть С, хоть С++), чтоб можно было с легкостью менять платформы и компиляторы, поэтому переползаю с GNU-C на современный стандарт С++. Так как в пакете пол миллиона строк кода на С и с десяток тысяч строк остатков на фортране, приходится много раз отмерять, прежде чем отрезать.

 

Перейти на