Архитектура архитектуры процессора изменилась, несколько ядер - это тенденция, которая изменит то, как мы должны разрабатывать программное обеспечение. Я сделал многопоточную разработку на C, С++ и Java, я сделал многопроцессорную разработку с использованием различных механизмов IPC. Традиционные подходы к использованию потоков, по-видимому, не позволяют разработчику использовать аппаратное обеспечение, поддерживающее высокую степень concurrency.
Какие языки, библиотеки и методы разработки вы знаете об этой помощи, чтобы облегчить традиционные проблемы создания параллельных приложений? Я, очевидно, думаю о таких проблемах, как тупики и условия гонки. Также интересны методы проектирования, библиотеки, инструменты и т.д., Которые помогают фактически использовать преимущества и обеспечить доступность доступных ресурсов. Простое создание надежного надежного многопоточного приложения не гарантирует, что он использует все доступные ядра.
То, что я видел до сих пор:
- Erlang: процесс основан, передача сообщений IPC," актер-модель concurrency
- Dramatis: библиотека моделей участников для Ruby и Python
- Scala: язык функционального программирования для JVM с добавленной поддержкой concurrency
- Clojure: язык функционального программирования для JVM с библиотекой участников.
- Termite: порт процесса процесса Erlang и сообщение, переходящее к Схеме
Что еще вы знаете о том, что сработало для вас и как вы думаете, интересно смотреть?