É possível (barra você pode fornecer um exemplo) reduzir a complexidade computacional de um problema usando um algoritmo paralelo que não requer um número de processadores em relação ao tamanho da entrada?
cc.complexity-theory
dc.parallel-comp
Nick Larsen
fonte
fonte
Respostas:
Se você quer dizer processadores O (1), então não, a complexidade da computação não pode ser reduzida.
Basta alinhar o trabalho realizado por cada processador e fazê-lo em um único. Se você está preocupado com a sincronização, um processador pode facilmente emular isso.
fonte
Existe um campo emergente de algoritmos paralelos de granulação grossa, em que o tempo de execução (e outro consumo de recursos computacionais) é considerado uma função dos parâmetros independentes n (tamanho da entrada) ep (número de processadores), geralmente sob uma suposição natural n >> p .
Um bom ponto de partida é procurar no Google por "paralelismo síncrono em massa".
fonte
Você pode estar interessado neste artigo:
Desempenho Superlinear em Computação Paralela em Tempo Real por Selim Akl.
fonte
Mas nenhuma mudança de complexidade.
fonte
"você não pode computar com 1 processador, mas com 2."
Isso não é possível, supondo que os dois processadores sejam TMs ou um modelo menos poderoso. Da wikipedia, para máquinas com várias fitas:
Também para máquinas com cabeçote múltiplo, de "Simulação linear no tempo de máquinas de cabeçote com cabeçote múltiplo com saltos cabeçote a cabeçote" de Walter J. Savitch e Paul MB Vitányi:
fonte
Talvez "paralelo ou" (dadas duas funções retornando um booleano, diga se uma delas retorna verdadeira, já que alguma delas, mas não as duas, pode falhar em terminar) pode ser o que você está falando: você não pode calcular com 1 processador, mas pode calcular com 2.
No entanto, isso depende muito de qual modelo computacional você usará, se você recebe os processos como caixas pretas ou como a descrição deles que você pode interpretar, etc.
fonte