Boa noite pessoal,
Estou criando um pacote que tem uma função que ele compara par a par um conjunto de sequências e me da um valor do score com base na similaridade delas. Por trabalhar com datasets grandes de sequência (mais de 100) que geram inúmeras combinações eu precisei paralelizar esse processo de forma a reduzir o tempo de execução da função.
Estou usando o seguinte código para paralelizar:
future::plan(future::multisession(), workers = 4)
res ← combinations %>%
furrr::future_pmap(
~calc_similarity(seq1 = .x, seq2 = .y, alignment_method = alignment_method, substitutionMatrix = BLOSUM62)
Ao utilizar esses comandos, ao checar meu pacote, dá erro e acusa que conexões ficaram abertas.
Pesquisando, vi a possibilidade de adicionar o comando closeAllConnections(). Esse comando funcionou e meu pacote passou no devtools::check().
Entretanto, quando executo o devtools::build_readme(), dá erro e não consigo gerar o readme:
Error:
! in callr subprocess.
Caused by error:
! invalid connection… Please make sure not to call closeAllConnections().
See $stdout
for standard output.
Confesso que não entendo muito sobre paralelização e conexões. Alguém já lidou com isso e sabe como eu poderia contornar esse problema? Ou tem alguma outra sugestão em que eu consiga otimizar o tempo de execução da função?
Agradeço desde já.