Download presentation
1
Modern Information Retrieval
Parallel and Distributed IR MIMD Architectures Inverted Files Aj. Khuanlux Mitsophonsiri CS.426 INFORMATION RETRIEVAL
2
Introduction The volume of electronic text available online today is staggering. The WWW contains over 800 millions pages of text, comprising nearly 6 terabytes of data (NATURE|Vol 400|8 July 1999| As document collections grow larger, they become more expensive to manage with an information retrieval system. To support the demanding requirements of modern search environments, we must turn to alternative architectures and algorithms. O volume de informação em forma eletrônica disponível online atualmente é enorme. Pelo que dizem, a World Wide Web contêm em torno de 200 milhões de páginas de texto , compreendendo aproximadamente 500 gigabytes de dados. Além disso, a Web têm crescido em uma taxa exponencial, aproximadamente dobrando em tamanho a cada seis meses. Grandes provedores de serviço de informação, tal como LEXIS-NEXIS, têm acumulado bancos de dados de documentos cujo tamanho alcança a ordem de terabytes. Em uma escala ligeiramente menor, as maiores intranets de corporações atualmente contêm em torno de um milhão de páginas da Web. Até mesmo coleções privadas de documentos online armazenadas em computadores pessoais estão crecendo à medida que o espaço em disco se torna mais barato e o conteúdo eletrônico se torna mais fácil de produzir, copiar e armazenar. À medida que as coleções de documentos aumentam, elas se tornam mais caras de serem gerenciadas por um sistema de recuperação de informação. Os custos de indexação e busca aumentam com o tamanho das coleções de documentos adjacentes; coleções de documentos maiores invariavelmente resultam em tempos de resposta maiores. A fim de suportar os requisitos de demandados pelos ambientes de busca moderna, devemos voltar-nos para arquiteturas e algoritmos alternativos. Nesta apresentação exploraremos técnicas de recuperação de informação paralelas e distribuídas. A aplicação do paralelismo pode melhorar grandemente nossa habilidade de tornar escaláveis os algoritmos de recuperação de informação tradicionais e suportar coleções de documento cada vez maiores. Continuaremos nossa apresentação com uma revisão de computação paralela e medidas de desempenho em programas paralelos. Em seguida, exploraremos técnicas para implementação de arquivos invertidos na arquitetura paralela MIMD.
3
Parallel Computing Parallel computing is the simultaneous application of multiple processors to solve a single problem. Flynn’s Taxonomy: SISD single instruction, single data SIMD single instruction, multiple data MISD multiple instruction, single data MIMD multiple instruction, multiple data Computação Paralela é a aplicação simultânea de múltiplos processadores para resolver um único problema, onde cada processador trabalha em uma parte diferente do problema. Com a computação paralela, o tempo total requerido para resolver o problema pode ser reduzido ao montante de tempo requerido pela parte de execução mais longa. À medida que o problema possa ser adicionalmente decomposto em mais partes que executarão em paralelo, podemos adicionar mais processadores ao sistema, reduzir o tempo requerido para resolver o problema, e escalar para problemas maiores. Os processadores podem ser combinados em uma variedade de maneiras para formar uma arquitetura paralela. Flynn definiu uma taxonomia de arquitetura paralela comumente usada baseada no número de fluxos de instruções e dados na arquitetura. A taxonomia inclue quatro classes: * SISD single instruction, single data * SIMD single instruction, multiple data * MISD multiple instruction, single data * MIMD multiple instruction, multiple data A classe MIMD é a mais geral e a mais popular dentre as classes de arquiteturas paralelas.
4
Parallel Program Performance Measures
Speedup Amdahl’s Law where f is the fraction of the problem that must be computed sequencially; N is the number of processors. Running time of best available sequential algorithm Running time of parallel algorithm Quando empregamos computação paralela, usualmente queremos saber que tipo de melhora de desempenho obtemos sobre um programa seqüencial comparável executando em um único processador. Um número de métricas estão disponíveis para medir o desempenho de um algoritmo paralelo. Um medida é o speedup obtido com o algoritmo paralelo relativo ao melhor algoritmo sequencial disponível para resolver o mesmo problema, definido como: S= ... O speedup perfeito é obtido quando S = N. Na prática, o speedup perfeito é inatingível tanto porque o problema não pode ser decomposto em N subtarefas iguais, a arquitetura paralela impõe overhead de controle (scheduling ou sincronização), quanto porque o problema contém um componente seqüencial inerente. A lei de Andahl estabelece que o máximo speedup obtido para um dado problema é relativo a f, a fração do problema que deve ser computado seqüencialmente. O relacionamento é dado por: S <= ...
5
Parallel Program Performance Measures
Efficiency where S is speedup; N is the number of processors. Outra medida de desempenho do algoritmo paralelo é eficiência, dada por: onde S é o speedup e N é o número de processadores. A eficiência ideal ocorre quando eficiencia=1. Assim, como o speedup perfeito, eficiência perfeita é inatingível na prática. Finalmente, a melhora de desempenho de um programa paralelo sobre um programa sequencial deve ser vista em termos de redução em tempo real requerido para completar a tarefa combinada com o custo monetário adicional associado com o hardware paralelo requerido para executar o programa paralelo. Uma vez revisados os conceitos básicos relacionados a computação paralela e medidas de desempenho em programas paralelos, seguiremos a apresentação explorando técnicas para implementação de arquivos invertidos na arquitetura paralela MIMD.
6
MIMD Architectures MIMD architectures offer a great deal of flexibility in how parallelism is defined and exploited to solve a problem. There are two ways in which a retrieval system can exploit a MIMD machine: Parallel multitasking; Partitioned parallel processing. As arquiteturas MIMD oferecem muita flexibilidade em como o paralelismo é definido e explorado para resolver um problema. Existem duas maneiras pelas quais um sistema de recuperação pode explorar uma máquina MIMD: através da multi-tarefa paralela, e através do processamento paralelo particionado.
7
MIMD Architectures Parallel multitasking on a MIMD machine Search
Broker User Query Result Search Engine Na multi-tarefa paralela, cada um dos processadores no computador paralelo executam um mecanismo de busca separado, independente. (A submissão de consultas de usuário para os mecanimos de busca é gerenciado por um) [O] broker (, que) aceita pedidos de busca dos usuários finais e distribui os pedidos entre os mecanismos de busca disponíveis. À medida que mais processadores são adicionados ao sistema, mais mecanismos de busca podem ser executados e mais pedidos de busca podem ser processados em paralelo, aumentando o throughput do sistema. Note, entretanto, que o tempo de resposta para consultas individuais permanece inalterado. Para mover além da multi-tarefa e melhorar o tempo de resposta da consulta, a computação requerida para avaliar uma consulta única deve ser particionada em sub-tarefas e distribuída entre os múltiplos processadores.
8
MIMD Architectures Partitioned parallel processing on a MIMD machine
Broker User Query Result Subquery/ Results Search Process No processamento paralelo particionado, (o broker e os processos de busca executam em paralelo em processadores separados, como antes, mas agora eles todos cooperam para avaliar a mesma consulta.) O broker aceita uma consulta do usuário final e distribui entre os processos de busca. Cada um dos processos de busca avaliam uma porção da consulta e transmite um resultado intermediário de volta ao broker. Finalmente, o broker combina os resultados intermediários em um resultado final para apresentação ao usuário.
9
MIMD Architectures Basic data elements processed by a Search algorithm
k1 k ki kt d1 w1,1 w2, wi, wt,1 d2 w1,2 w2, wi, wt,2 dj w1,j w2,j wi,j wt,j dN w1,N w2,N wi,N wt,N Indexing Items D o c u m e n t s O problema de como particionar a computação resume-se a questão de como particionar os dados. Esta figura apresenta uma visão em alto nível dos dados processados por algoritmos de busca típicos. Cada linha representa um documento, dj, e cada coluna representa um ítem de indexação, ki. (Aqui, ki representa um termo, frase ou conceito). As entradas na matriz, wi,j, são pesos, indicando em qual grau o item de indexação i está associado ao documento j.
10
MIMD Architectures There are two possible methods for partitioning the data: Document partitioning: the N documents are distributed across the P processors; each parallel process evaluates the query on the sub collection of N/P documents assigned to it; Term partitioning: the t indexing items are distributed across the P processors; the evaluation process for each document is spread over multiple processors. Esta representação revela dois possíveis métodos para particionar os dados: * Partição dos documentos: * Partição dos termos. Na partição de documentos, os N documentos são distribuídos através dos P processadores. Cada processo paralelo avalia a consulta em relação a subcoleção de N/P documentos atribuídos a ele. (Os resultados de cada uma das subcoleções são combinados em um resultado final.) Na partição de termos, os t itens de indexação são distribuídos através dos P processadores. O processo de avaliação de cada documento é distribuído entre múltiplos processadores. A seguir, consideraremos ambos os métodos de particionamento de dados para arquivos invertidos.
11
Inverted Files Logical Document Partitioning
Data Partitioning The data partitioning is done logically using essentially the same basic underlying inverted file index as in the original sequential algorithm; The inverted file is extended to give each parallel process direct access to that portion of the index related to the processor’s sub collection of documents. Discutiremos primeiramente arquivos invertidos para sistemas que empregam partição de documento. Existem duas abordagens para particionamento de documento em sistemas que usam arquivos invertidos: particionamento de documento lógico e particionamento de documento físico. Começaremos apresentando o particionamento de documento lógico. O particionamento de dados é feito logicamente usando essencialmente o mesmo arquivo invertido do algoritmo sequencial original. O arquivo invertido é extendido para dar a cada processo paralelo (um para cada processador) acesso direto a porção do índice relacionada a subcoleção de documentos do processador.
12
Inverted Files Logical Document Partitioning
Extended dictionary entry for document partitioning item i P1 P2 P3 P4 Inverted List Term i Dictionary Cada entrada do dicionário de termo é extendida para incluir P ponteiros na lista invertida correspondente, onde o j-ésimo ponteiro indexa o bloco de entradas de documento na lista invertida associada com a subcoleção do j-ésimo processador.
13
Inverted Files Logical Document Partitioning
Query Evaluation The broker initiates P parallel processes to evaluate the query; Each process executes the same document scoring algorithm on its document sub collection; The search processes record document scores in a single shared array of document score accumulators; The broker produces the final ranked list of documents. Quando uma consulta é submetida ao sistema, o broker inicia P processos paralelos para avaliar a consulta.Cada processo executa o mesmo algoritmo de pontuação de documentos na sua subcoleção, usando o ddicionário extendido para acessar as entradas apropriadas no arquivo invertido. Os processos de busca gravam as pontuações dos documentos em um vetor compartilhado único e notifica o broker quando terminam. Depois que todos os processos de busca terminarem, o broker ordena o vetor de pontuação de documentos e produz a lista final de documentos.
14
Inverted Files Logical Document Partitioning
Inverted File Construction The indexer partitions the documents among the processors; Each indexing process generates a batch of inverted lists, sorted by indexing item; A merge step is performed to create the final inverted file. Primeiramente, o indexador particiona os documentos entre os processadores. Cada processo de indexação gera um lote de listas invertidas, ordenadas por termo de indexação Depois que todos os lotes foram gerados, um passo de intercalação é executado para criar o arquivo invertido final. O passo de intercação monta os componentes da lista invertida proveniente de cada lote e pertencentes ao mesmo item de indexação. Os ponteiros adicionais que indexam os blocos de entradas de documentos nas listas invertidas são gerados no passo de intercalação
15
Inverted Files Physical Document Partitioning
Data Partitioning The documents are physically partitioned into separate sub collections, one for each parallel processor; Each sub collection has its own inverted file. Existem duas abordagens para particionamento de documento em sistemas que usam arquivos invertidos: particionamento de documento lógico e particionamento de documento físico. Começamos apresentando o particionamento de documento lógico. Continuaremos apresentado o particionamento de documento físico. Os documentos são fisicamente particionados em subcoleções separadas, uma para cada processador paralelo. Cada subcoleção tem o seu próprio arquivo invertido.
16
Inverted Files Physical Document Partitioning
Query Evaluation The broker distributes the query to all of the parallel search processes; Each parallel search process evaluates the query on its portion of the document collection, producing an intermediate hit-list; The broker collects the intermediate hit-lists from all of the parallel search processes and merges them into a final hit-list. Quando uma consulta é submetida para o sistema, o broker distribui a consulta para todos os processos de busca paralelos. Cada processo de busca paralelo avalia a consulta na sua porção da coleção de documentos, produzindo uma lista intermediária de pontuações de documentos. O broker coleta as listas intermediárias de pontuações de documentos de todos os processos de busca paralelos e as intercala gerando a lista final de documentos.
17
Inverted Files Physical Document Partitioning
Inverted File Construction Each processor creates, in parallel, its own complete index corresponding to its document partition; A merge step is performed to accumulate the global statistics for all of the partitions and distribute them to each of the partition dictionaries.
18
Inverted Files Term Partitioning
Data Partitioning Inverted lists are spread across the processors. Existem dois métodos de particionamento de dados : particionamento de documento e partionamento de termos. Discutimos primeiramente arquivos invertidos para sistemas que empregam particionamento de documento. Continuaremos discutindo arquivos invertidos para sistemas que empregam o particionamento de termo. Na fase de particionamento de dados, as listas invertidas são distribuídas entre os processadores.
19
Inverted Files Term Partitioning
Query Evaluation Query is decomposed into indexing items and each indexing item is sent to the processor that holds the corresponding inverted list; The processors create hit-lists with partial document scores and return them to the broker; The broker combines the hit-lists. Na fase de avaliação da consulta, a consulta é decomposta em itens de indexação e cada item de indexação é enviado para o processador que possui a lista invertida correspondente. Os processadores criam listas com pontuações de documentos parciais e as retornam para o broker. O broker então combina as listas e produz a lista de documentos final.
20
Inverted Files Term Partitioning
Inverted File Construction Inverted file is created using the parallel construction technique described for logical document partitioning.
21
Example Document collection Document Text 1 Pease porridge hot
Pease porridge cold Pease porridge in the pot Pease porridge hot, pease porridge not cold Pease porridge cold, pease porridge not hot Pease porridge hot in the pot Exemplifiquemos, então, a implementação de arquivo invertido em sistemas que usam o particionamento de documento, tanto lógico quanto físico, e o particionamento de termo. No exemplo, a coleção de documentos é composta por seis documentos constituídos por esses pequenos textos.
22
Example Inverted File <6,1> cold hot in not pease porridge pot
the <1,1> <2,1> <3,1> <4,2> <5,2> Dictionary <4,1> <5,1> Inverted Lists O arquivo invertido para essa coleção está aqui representado. O dicionário de termos é composto por 8 termos, e cada termo está acompanhado pela sua lista invertida. O primeiro termo é “cold”; ele ocorre nos documentos 2, 4 e 5, com frequencia 1.
23
Example Logical Document Partitioning <6,1> cold hot in not
pease porridge pot P1 P2 P3 the <1,1> <2,1> <3,1> <4,2> <5,2> Inverted List Term “pease” Dictionary O arquivo invertido, para a mesma coleção em um sistema que usa particionamento de documento lógico, está aqui representado. Incluimos 3 processadores na arquitetura paralela. Atribuímos os documentos 1 e 2 ao processador 1, os documentos 3 e 4 ao processador 2, e os documentos 5 e 6 ao processador 3. Representamos o particionamento da lista invertida correspondente ao termo “pease”. O processador P1 recebeu o bloco de entradas da lista invertida correspondente ao documentos 1 e 2, o processador P2 ... O particionamento das listas invertidas restantes é análogo ao que acabamos de explicar.
24
Example Physical Document Partitioning hot pease porridge <1,1>
<2,1> P1 cold Example Physical Document Partitioning cold hot in not pease porridge pot the <3,1> <4,2> <4,1> P2 <6,1> hot in not pease porridge pot the <5,2> <5,1> P3 cold O arquivo invertido, para a mesma coleção em um sistema que usa particionamento de documento físico, está aqui representado. Três arquivos invertidos distintos foram criados, um para cada processador. O processador 1 possui o arquivo invertido correspondente aos documentos 1 e 2, o processador 2 ...
25
Example Term Partitioning <6,1> cold hot in not pease porridge
pot the <1,1> <2,1> <3,1> <4,2> <5,2> <4,1> <5,1> P1 P2 P3 Finalmente, o arquivo invertido, para a mesma coleção em um sistema que usa particionamento de termo, está aqui representado. O processador 1 recebeu as listas invertidas correspondentes aos termos ...
26
Conclusion The task of indexing and searching in very large text collections is costly; Faster indexing and searching algorithms are always desirable and the use of parallel hardware is and obvious alternative; We discussed two possible organization for the document collection index on a MIMD parallel architecture: Document partitioning; Term partitioning. Document partitioning affords simpler inverted index construction and maintenance than term partitioning; When term distributions in the documents and queries are more skewed, document partitioning performs better; When terms are uniformily distributed in user queries, term partitioning performs better.
27
Conclusion Document partitioning affords simpler inverted index construction and maintenance than term partitioning; When term distributions in the documents and queries are more skewed, document partitioning performs better; When terms are uniformily distributed in user queries, term partitioning performs better. O particionamento de documento permite a construção e manutenção do arquivo invertido mais fácil do que o particionamento de termo. Isto porque no particionamento de documento os arquivos invertidos podem ser construídos e mantidos paralelamente; no particionamento de termo, o arquivo invertido deve ser construído e mantido de maneira centralizada. Quando as distribuições de termo nos documentos e consultas são tendenciosas, o particionamento de documento tem um desempenho melhor. Se a distribuição é tendenciosa, grandes listas invertidas podem ser geradas, e um único processador fica sobrecarregado com o processamento de uma lista invertida longa. Quando os termos são uniformemente distribuídos, o particionamento de termo tem um desempenho melhor. Poucos processadores se ocupam com o processamento das listas invertidas dos termos de uma consulta, e o restante dos processadores podem se ocupar com outras consultas. Já no particionamento de documento, todos os processadores se ocupam com uma única consulta.
Similar presentations
© 2025 SlidePlayer.com. Inc.
All rights reserved.