A quick question about the development environment for the LLVM OpenMP RTL and Clang. Since I want to implement new loop scheduling techniques into the runtime library and then test them with benchmarks on a Linux cluster, should I use a Linux development environment or can I also use my Windows PC with Visual Studio? I have seen that there is Windows support but I’d rather ask before having too many issues later on How well is the cross-platform support?
And if not, what is the best recommended system/evironment for LLVM development (I think your experience would help me)?
I’d appreciate any answer!
How well is the cross-platform support?
The runtime should build and run perfectly well on Windows. (Remember that the LLVM OpenMP runtime is effectively the same code as the Intel LLVM runtime, and that is supported as a product on Windows).
If you are interested in new loop schedules, it might be worth considering whether you could prototype the “User Defined Schedules” which are under-discussion for OpenMP 5.1. That would require some compiler work, as well as runtime work, but once implemented that interface is intended to allow you to implement any schedule you want in user code without having to rebuild the runtime library. And, this would be a potentially useful contribution to the general development of OpenMP and LLVM, since having an implementation before the standard is finalized would help to ensure that what is specified is implementable and useful!
Of course, if the University of Basel is not an OpenMP member, that may make things harder, since early drafts of the specification are not released publicly, (though joining is now relatively cheap for a university ($1000)).