Отладка в потоковых строительных блоках
Я хотел бы программировать в потоке строительных блоков с задачами. Но как сделать отладку на практике?
В общем, метод печати - это надежный метод для отладки программ. По моему опыту с распараллеливанием MPI, правильный способ ведения журналов состоит в том, что каждый поток печатает свою информацию отладки в своем собственном файле (скажем, «debug_irank» с irank рангом в MPI_COMM_WORLD), чтобы можно было найти логические ошибки.
Как можно добиться чего-то подобного с помощью TBB? Не ясно, как получить доступ к номеру потока в пуле потоков, так как это, очевидно, что-то внутреннее для tbb.
В качестве альтернативы можно добавить дополнительный индекс, определяющий ранг при создании задачи, но это усложняет код, поскольку об этом должна заботиться вся программа.