Многопоточность в LLVM
Мне нужно сгенерировать код LLVM, который будет обслуживать множество потоков / задач (сотни тысяч). Эти потоки должны быть легкими, как задачи Intel TBB, Golang Gorutines или другие. Конечно, они могут быть реализованы с внешними библиотеками C++, такими как упомянутый Intel TBB (если он совместим с LLVM).
Я долго искал любую информацию о потоках в LLVM, и я не нашел много. В документации LLVM описаны некоторые вызовы API, но я думаю, что это не то, что я ищу.
Итак, есть несколько вопросов:
- Можно ли использовать такие технологии, как Intel TBB или Cilk вместе с LLVM?
- Какую библиотеку потоков следует использовать в этой ситуации?
1 ответ
На самом деле, кажется, есть несколько проектов, которые используют Intel TBB и LLVM, например, собственный пакет opencl от Intel использовал TBB и LLVM для своего компилятора http://software.intel.com/en-us/articles/vcsource-tools-opencl-sdk/