Комментировать

Если время позволяет, то

Если время позволяет, то почему бы и нет. Всё же я советую написать сначала пояснительную записку, а потом уже экспериментировать и в случае получения какого-то результата вставить отдельную главу.

Имхо реализовывать на Cuda будет несколько быстрей чем на OpenCL - меньше служебных вызовов, соответственно меньше возможных багов.
Также если не возиться с интерфейсами(абстрактными классами) и не заботиться о гибкости, а непосредствено реализовывать решатель, можно управиться за день, тем более у вас есть опыт реализации этого алгоритма параллельно.

Интересно, почему было выбрано OpenMP, а не допустим MPI(конечно это разные вещи, но всё же). И дало-ли использование многопоточности на системе с разделяемой памятью ощутимый прирост скорости(тут конечно всё от системы зависит, может огромная ПСП и относительно слабые потоки как на видеокарте, то без параллельности никак).