A) в вашей реализации заложен большой потенциал оптимизации, который легче реализовать, чем многопоточность.Поэтому сначала оптимизируйте свой код.
В частности, если вы загрузите свои данные в такие инструменты, как ELKI (обязательно добавьте пространственный индекс, который не является значением по умолчанию), вы заметите, что они работают намного быстрее, дажетолько с одним потоком
B) существуют публикации по многоядерному DBSCAN, в которых обсуждаются трудности и проблемы, возникающие при укладке на поддоны DBSCAN.Сначала прочитайте, так как вся эта история очень важна для этого формата вопросов и ответов:
Patwary, MA, Palsetia, D., Agrawal, A., Liao, WK, Manne, F., &Чоудхари, А. (2012, ноябрь).Новый масштабируемый параллельный алгоритм DBSCAN, использующий структуру данных с несвязным множеством.В материалах Международной конференции по высокопроизводительным вычислениям, сетям, хранению и анализу (стр. 62).IEEE Computer Society Press.
Götz, M., Bodenstein, C., & Riedel, M. (2015, ноябрь).HPDBSCAN: высокопараллельный DBSCAN.В материалах семинара по машинному обучению в высокопроизводительных вычислительных средах (с. 2).ACM.
Welton B., Samanas E. & Miller, BP (2013, ноябрь).Г-н Скан: Кластеризация с высокой плотностью масштабирования с использованием древовидной сети узлов gpgpu.В SC'13: Материалы Международной конференции по высокопроизводительным вычислениям, сетям, хранению и анализу (стр. 1-11).IEEE.