В настоящее время моя компания запускает стороннюю программу моделирования (моделирование риска природных катастроф), которая высасывает гигабайты данных с диска и затем хрустит в течение нескольких дней для получения результатов. Вскоре меня попросят переписать это как многопоточное приложение, чтобы оно работало за часы, а не дни. Я ожидаю, что у меня будет около 6 месяцев для завершения конвертации, и я буду работать в одиночку.
У нас есть коробка с 24 процессами, чтобы запустить это. У меня будет доступ к исходной программе (написанной на C ++, я думаю), но на данный момент я очень мало знаю о ее разработке.
Мне нужен совет, как справиться с этим. Я опытный программист (~ 30 лет, в настоящее время работаю в C # 3.5), но не имею опыта работы с несколькими процессорами / многопоточностью. Я желаю и хочу выучить новый язык, если это уместно. Я ищу рекомендации по языкам, учебным ресурсам, книгам, архитектурным руководствам. и т.д.
Требования: ОС Windows. Компилятор коммерческого класса с большой поддержкой и хорошими учебными ресурсами. Нет необходимости в необычном графическом интерфейсе - он, вероятно, будет запускаться из файла конфигурации и помещать результаты в базу данных SQL Server.
Edit: текущее приложение на C ++, но я почти наверняка не буду использовать этот язык для переписывания. Я удалил тег C ++, который кто-то добавил.