Я пытаюсь создать снеговой кластер с примерно 120 процессами на 3 разных хостах. Это серверы AMD с 48 ядрами каждый. После создания приблизительно первые 90 рабов, я получаю эту ошибку:Есть ли предел количества рабов, которые может создать снег R?
cl = makeSOCKcluster(c(rep("localhost", 44), rep("host2", 46), rep("host3", 45)))
Error in socketConnection(port = port, server = TRUE, blocking = TRUE, :
all connections are in use
> traceback()
3: socketConnection(port = port, server = TRUE, blocking = TRUE,
open = "a+b")
2: newSOCKnode(names[[i]], options = options, rank = i)
1: makeSOCKcluster(c(rep("localhost", 44), rep("host2", 46),
rep("host3", 45)))
Я проверил мои пределы системы и не вижу никаких проблем:
# cat /proc/sys/fs/file-max
12897622
# grep "#define __FD_SETSIZE" /usr/include/*.h /usr/include/*/*.h
/usr/include/linux/posix_types.h:#define __FD_SETSIZE 1024
# ulimit -a |grep open
open files (-n) 65536
Есть ли ограничение на количество процессов, снег может создать?
Использование multicore не позволит ему использовать 3 хоста. Но он мог использовать кластер MPI со снегом. –
@SteveWeston: хорошо пункт. Я не заметил несколько хостов ... –
Другим вариантом является использование одного рабочего на узел со снегом, а затем использование многоядерных процессоров для каждого рабочего. Это больше работы, но масштабы намного лучше. –