LLVM - это несколько вещей вместе - разновидность виртуальной машины / оптимизирующего компилятора в сочетании с различными внешними интерфейсами, которые принимают входные данные на определенном языке и выводят результат на промежуточном языке. Этот промежуточный вывод может быть запущен на виртуальной машине или может использоваться для создания отдельного исполняемого файла.
Проблема с параллелизмом заключается в том, что, хотя он долгое время использовался в научных вычислениях, он только недавно стал распространенным в потребительских приложениях. Таким образом, хотя широко известно, как программировать программу научных расчетов для достижения высокой производительности, совершенно другое дело - написать почтовый пользовательский агент / текстовый процессор, который хорошо справляется с параллелизмом. Кроме того, большинство современных ОС разрабатывалось с учетом одного процессора, и они могут быть не полностью подготовлены для многоядерных процессоров.
Преимущество LLVM в отношении параллелизма заключается в том, что у вас есть промежуточный вывод, и если в будущем будут достигнуты успехи в параллелизме, то, обновив свой интерпретатор, вы сразу получите эти преимущества во всех программах, скомпилированных LLVM. Это не так просто, если вы скомпилировали в отдельный исполняемый файл. Таким образом, LLVM не решает проблему параллелизма как таковую, но оставляет открытую дверь для будущих улучшений.
Конечно, есть еще больше возможностей для аппаратного обеспечения, таких как квантовые компьютеры, генетические компьютеры и т. Д. Но мы должны ждать, пока они станут реальностью.