Тип MailboxProcessor
в F # (см. Документы MSDN ), по сути, реализует ту же модель параллелизма на основе агентов, что и Erlang.Единственное отличие состоит в том, что Erlang больше подходит для распределенных вычислений (на нескольких компьютерах), тогда как F # использует модель программирования в основном на одной машине (но с несколькими потоками / ядрами).
В целом, я думаю, что утверждения об Эрланге также будут применяться к F #.
Относительно цитаты : я не совсем уверен, что именно автор пытается именносказать (может быть, какой-то контекст отсутствует?).Это, конечно, не означает, что вы можете взять обычную (последовательную) программу и волшебным образом запустить ее в N раз быстрее.
Однако, если вы используете модель программирования Erlang или параллелизма на основе F # agnet, то вы можете получить ускорение с каждым дополнительным ядром.Это означает, что вы будете писать программу как большое количество агентов (экземпляры MailboxProcessor
в F #). Отдельные агенты написаны как последовательные подпрограммы, но вам все равно нужно думать о программировании иначе.
Технические аспекты : Эрланг не использует физические потоки ОС икак и F #, поэтому поведение должно быть примерно одинаковым.Это означает, что вы можете создать большое количество агентов (что является точкой модели программирования).Агенты в F # основаны на асинхронных рабочих процессах , которые делают это возможным.