Easing the benchmarking of parallel stream processing on multi-cores

Detalhes bibliográficos
Autor(a) principal: Garcia, Adriano Marques
Data de Publicação: 2023
Tipo de documento: Tese
Idioma: eng
Título da fonte: Biblioteca Digital de Teses e Dissertações da PUC_RS
Texto Completo: https://tede2.pucrs.br/tede2/handle/tede/10884
Resumo: No mundo de hoje impulsionado por dados e crescente expectativa por resultados imediatos, há uma demanda crescente por processamento de dados em tempo real/baixa latência. O processamento de stream é uma técnica que processa os dados à medida que eles se tornam disponíveis, permitindo o processamento de dados quase em tempo real. Para lidar com o processamento de grandes volumes de dados, aplicações de processamento de stream devem recorrer a técnicas de paralelismo para acelerar o processamento. Embora existam interfaces de programação paralela (IPPs) capazes de adicionar várias camadas de abstração, o paralelismo no processamento de stream ainda é uma tarefa difícil e que normalmente exige conhecimento especializado para atingir os níveis de desempenho desejados. Isso gera um grande esforço de pesquisa em direção à aumentar o desempenho do processamento paralelo de stream e tornar a programação paralela mais acessível. Tipicamente, benchmarks são usados para avaliar as IPPs e novas soluções nesse contexto. No entanto, existem várias limitações nos benchmarks existentes, incluindo a falta de benchmarks para algumas categorias de aplicações de processamento de stream, poucas ou nenhuma opção de parametrização, dificuldade em estender os benchmarks para outras IPPs, falta de métricas de desempenho adequadas, falta de preocupação com usabilidade, suporte apenas para linguagens baseadas na Java Virtual Machine (JVM), etc. Este trabalho propõe um framework chamado SPBench para criar benchmarks personalizados e avaliar o processamento paralelo de stream. Nosso principal objetivo é facilitar o processo de benchmarking no processamento de stream, incluindo a criação, compilação, execução, ajuste-fino e avaliação dos benchmarks. Portanto, esta tese de doutorado fornece as seguintes principais contribuições científicas: (I) Um framework que simplifica o benchmarking de aplicações de processamento de stream, fornecendo uma Application Programming Interface (API) e uma interface de linha de comando para simplificar, reutilizar código, personalizar, estender e avaliar diferentes aspectos ou propriedades em relação ao processamento paralelo de stream. (II) Um conjunto de benchmarks paralelos em C++ para processamento de stream que inclui aplicações do mundo real e as IPPs mais utilizadas neste contexto. (III) Um estudo comparativo abrangente das IPPs mais populares que usam o paralelismo de stream em C++. (IV) Mecanismos para simulação dinâmica de frequência de stream de dados em aplicações de processamento de stream, com um conjunto de algoritmos para gerar os padrões de frequência de stream de dados mais comumente usados na literatura e uma análise do impacto da frequência de dados no desempenho dessas aplicações. (V) Uma análise do impacto do tamanho de micro-batches no desempenho de aplicações de processamento de stream, incluindo mecanismos para controle dinâmico de batch baseado em tamanho específico ou intervalos de tempo. Testamos o framework SPBench com cinco aplicações do mundo real de processamento de vídeo/imagem, compressão de dados e detecção de fraudes. Neste trabalho nós tentamos mostrar os benefícios do SPBench usando-o em combinação com IPPs para gerar benchmarks de processamento paralelo de stream e realizar diversas análises. No geral, os resultados mostraram que as abstrações de alto nível das IPPs podem causar um grande impacto no desempenho quando abstraem mecanismos de ajuste fino. Nos experimentos de frequência de dados, a IPP FastFlow obteve mais benefícios de cenários de frequência variável do que o TBB em nossos casos de teste. Por fim, os resultados experimentais mostraram que a potencial vantagem de desempenho do uso de microbatches em ambientes multi-núcleo tende a aparecer apenas em cenários muito específicos
id P_RS_c0d37fc6ba1cf5303e593b3a44d0d1be
oai_identifier_str oai:tede2.pucrs.br:tede/10884
network_acronym_str P_RS
network_name_str Biblioteca Digital de Teses e Dissertações da PUC_RS
repository_id_str
spelling Fernandes, Luiz Gustavo Leaohttp://lattes.cnpq.br/5979862734558983Griebler, Dalvanhttp://lattes.cnpq.br/1989039890812573Schepke, Claudiohttp://lattes.cnpq.br/6412713158883137http://lattes.cnpq.br/8808580706231354Garcia, Adriano Marques2023-07-04T18:42:01Z2023-03-31https://tede2.pucrs.br/tede2/handle/tede/10884No mundo de hoje impulsionado por dados e crescente expectativa por resultados imediatos, há uma demanda crescente por processamento de dados em tempo real/baixa latência. O processamento de stream é uma técnica que processa os dados à medida que eles se tornam disponíveis, permitindo o processamento de dados quase em tempo real. Para lidar com o processamento de grandes volumes de dados, aplicações de processamento de stream devem recorrer a técnicas de paralelismo para acelerar o processamento. Embora existam interfaces de programação paralela (IPPs) capazes de adicionar várias camadas de abstração, o paralelismo no processamento de stream ainda é uma tarefa difícil e que normalmente exige conhecimento especializado para atingir os níveis de desempenho desejados. Isso gera um grande esforço de pesquisa em direção à aumentar o desempenho do processamento paralelo de stream e tornar a programação paralela mais acessível. Tipicamente, benchmarks são usados para avaliar as IPPs e novas soluções nesse contexto. No entanto, existem várias limitações nos benchmarks existentes, incluindo a falta de benchmarks para algumas categorias de aplicações de processamento de stream, poucas ou nenhuma opção de parametrização, dificuldade em estender os benchmarks para outras IPPs, falta de métricas de desempenho adequadas, falta de preocupação com usabilidade, suporte apenas para linguagens baseadas na Java Virtual Machine (JVM), etc. Este trabalho propõe um framework chamado SPBench para criar benchmarks personalizados e avaliar o processamento paralelo de stream. Nosso principal objetivo é facilitar o processo de benchmarking no processamento de stream, incluindo a criação, compilação, execução, ajuste-fino e avaliação dos benchmarks. Portanto, esta tese de doutorado fornece as seguintes principais contribuições científicas: (I) Um framework que simplifica o benchmarking de aplicações de processamento de stream, fornecendo uma Application Programming Interface (API) e uma interface de linha de comando para simplificar, reutilizar código, personalizar, estender e avaliar diferentes aspectos ou propriedades em relação ao processamento paralelo de stream. (II) Um conjunto de benchmarks paralelos em C++ para processamento de stream que inclui aplicações do mundo real e as IPPs mais utilizadas neste contexto. (III) Um estudo comparativo abrangente das IPPs mais populares que usam o paralelismo de stream em C++. (IV) Mecanismos para simulação dinâmica de frequência de stream de dados em aplicações de processamento de stream, com um conjunto de algoritmos para gerar os padrões de frequência de stream de dados mais comumente usados na literatura e uma análise do impacto da frequência de dados no desempenho dessas aplicações. (V) Uma análise do impacto do tamanho de micro-batches no desempenho de aplicações de processamento de stream, incluindo mecanismos para controle dinâmico de batch baseado em tamanho específico ou intervalos de tempo. Testamos o framework SPBench com cinco aplicações do mundo real de processamento de vídeo/imagem, compressão de dados e detecção de fraudes. Neste trabalho nós tentamos mostrar os benefícios do SPBench usando-o em combinação com IPPs para gerar benchmarks de processamento paralelo de stream e realizar diversas análises. No geral, os resultados mostraram que as abstrações de alto nível das IPPs podem causar um grande impacto no desempenho quando abstraem mecanismos de ajuste fino. Nos experimentos de frequência de dados, a IPP FastFlow obteve mais benefícios de cenários de frequência variável do que o TBB em nossos casos de teste. Por fim, os resultados experimentais mostraram que a potencial vantagem de desempenho do uso de microbatches em ambientes multi-núcleo tende a aparecer apenas em cenários muito específicosIn today’s fast-changing data-driven world, there is increasing demand for realtime/low-latency data processing. Stream processing is a technique that envisages processing data as it becomes available, enabling near real-time data processing. Stream processing applications must resort to parallelism techniques to speed up processing and to cope with processing large volumes of data. Although there are parallel programming interfaces (PPIs) that add several abstraction layers, parallelism in stream processing is still a difficult task, usually demanding expert knowledge to achieve desired performance levels. This generates a lot of research effort toward boosting parallel stream processing performance and making parallel programming more accessible. Typically, benchmarks are used to evaluate the PPIs and new solutions in this context. However, there are a number of limitations in existing benchmarks, including not addressing some categories of stream processing applications, few or no parameterization options, difficulty extending the benchmarks to other PPIs, lack of appropriate performance metrics, poor usability, only targeting JVM-based languages, and others. This work proposes a framework called SPBench for creating custom benchmarks and evaluating parallel stream processing. Our main goal is to ease the benchmarking process in parallel stream processing, including the creation, building, execution, tuning, and evaluating of the benchmarks. Therefore, this doctoral dissertation provides the following main scientific contributions: (I) A framework that simplifies the benchmarking of stream processing applications, providing an API and a command-line interface to simplify, reuse code, customize, extend, and evaluate diferente aspects or properties regarding parallel stream processing. (II) A parallel C++ benchmark suite for stream processing that includes real-world applications and the most state-of-theart Parallel Programming Interfaces (PPIs) in this context. (III) A comprehensive comparative study of the most popular PPIs leveraging C++ stream parallelism. (IV) Mechanisms for dynamic data stream frequency simulation in stream processing applications with a set of algorithms for generating the literature’s most commonly used data stream frequency patterns and an analysis of the data frequency impact on the performance of stream processing applications. (V) An analysis of the performance impact of micro-batch sizing on stream processing applications, including mechanisms for real-time and dynamic batching management, allowing users to adjust batch sizes on the fly either based on specific size targets or time intervals. We test the SPBench framework with five real-world applications of video/image processing, data compression, and fraud detection. We show the benefits of SPBench by using it in combination with PPIs to generate parallel stream processing benchmarks and conduct various analyses. Overall, the results showed that the high-level abstractions of PPIs can cause significant performance penalties when they hide fine-tuning mechanisms. In the data frequency experiments, the FastFlow PPI benefited more from varying frequency scenarios than the TBB in our test cases. Finally, the experimental results showed that the potential performance advantage of using micro-batches on multi-cores tends to show up only in specific scenarios.Submitted by PPG Ciência da Computação (ppgcc@pucrs.br) on 2023-06-30T12:33:24Z No. of bitstreams: 1 ADRIANO MARQUES GARCIA_TES.pdf: 4977720 bytes, checksum: 3592ef3268f8a911e418ca47190005ba (MD5)Approved for entry into archive by Sarajane Pan (sarajane.pan@pucrs.br) on 2023-07-04T18:22:25Z (GMT) No. of bitstreams: 1 ADRIANO MARQUES GARCIA_TES.pdf: 4977720 bytes, checksum: 3592ef3268f8a911e418ca47190005ba (MD5)Made available in DSpace on 2023-07-04T18:42:01Z (GMT). No. of bitstreams: 1 ADRIANO MARQUES GARCIA_TES.pdf: 4977720 bytes, checksum: 3592ef3268f8a911e418ca47190005ba (MD5) Previous issue date: 2023-03-31Coordenação de Aperfeiçoamento de Pessoal de Nível Superior - CAPESapplication/pdfhttps://tede2.pucrs.br/tede2/retrieve/188301/ADRIANO%20MARQUES%20GARCIA_TES.pdf.jpgengPontifícia Universidade Católica do Rio Grande do SulPrograma de Pós-Graduação em Ciência da ComputaçãoPUCRSBrasilEscola PolitécnicaStream ProcessingFrameworkBenchmarkMulti-correProcessamento de FluxoFrameworkBenchmarkMulti-núcleoCIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAOEasing the benchmarking of parallel stream processing on multi-coresFacilitando a avaliacao do processamento paralelo de stream em arquiteturas multi-nucleoinfo:eu-repo/semantics/publishedVersioninfo:eu-repo/semantics/doctoralThesisTrabalho não apresenta restrição para publicação-4570527706994352458500500600-8620782570833253013590462550136975366info:eu-repo/semantics/openAccessreponame:Biblioteca Digital de Teses e Dissertações da PUC_RSinstname:Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)instacron:PUC_RSTHUMBNAILADRIANO MARQUES GARCIA_TES.pdf.jpgADRIANO MARQUES GARCIA_TES.pdf.jpgimage/jpeg5349https://tede2.pucrs.br/tede2/bitstream/tede/10884/3/ADRIANO+MARQUES+GARCIA_TES.pdf.jpg04ac53ccf33b64cce6278ac60672ce38MD53TEXTADRIANO MARQUES GARCIA_TES.pdf.txtADRIANO MARQUES GARCIA_TES.pdf.txttext/plain484288https://tede2.pucrs.br/tede2/bitstream/tede/10884/4/ADRIANO+MARQUES+GARCIA_TES.pdf.txtc5505da575fdb4e320cc3144a335ddb5MD54ORIGINALADRIANO MARQUES GARCIA_TES.pdfADRIANO MARQUES GARCIA_TES.pdfapplication/pdf4977720https://tede2.pucrs.br/tede2/bitstream/tede/10884/2/ADRIANO+MARQUES+GARCIA_TES.pdf3592ef3268f8a911e418ca47190005baMD52LICENSElicense.txtlicense.txttext/plain; charset=utf-8590https://tede2.pucrs.br/tede2/bitstream/tede/10884/1/license.txt220e11f2d3ba5354f917c7035aadef24MD51tede/108842023-07-05 12:00:20.979oai:tede2.pucrs.br:tede/10884QXV0b3JpemE/P28gcGFyYSBQdWJsaWNhPz9vIEVsZXRyP25pY2E6IENvbSBiYXNlIG5vIGRpc3Bvc3RvIG5hIExlaSBGZWRlcmFsIG4/OS42MTAsIGRlIDE5IGRlIGZldmVyZWlybyBkZSAxOTk4LCBvIGF1dG9yIEFVVE9SSVpBIGEgcHVibGljYT8/byBlbGV0cj9uaWNhIGRhIHByZXNlbnRlIG9icmEgbm8gYWNlcnZvIGRhIEJpYmxpb3RlY2EgRGlnaXRhbCBkYSBQb250aWY/Y2lhIFVuaXZlcnNpZGFkZSBDYXQ/bGljYSBkbyBSaW8gR3JhbmRlIGRvIFN1bCwgc2VkaWFkYSBhIEF2LiBJcGlyYW5nYSA2NjgxLCBQb3J0byBBbGVncmUsIFJpbyBHcmFuZGUgZG8gU3VsLCBjb20gcmVnaXN0cm8gZGUgQ05QSiA4ODYzMDQxMzAwMDItODEgYmVtIGNvbW8gZW0gb3V0cmFzIGJpYmxpb3RlY2FzIGRpZ2l0YWlzLCBuYWNpb25haXMgZSBpbnRlcm5hY2lvbmFpcywgY29ucz9yY2lvcyBlIHJlZGVzID9zIHF1YWlzIGEgYmlibGlvdGVjYSBkYSBQVUNSUyBwb3NzYSBhIHZpciBwYXJ0aWNpcGFyLCBzZW0gP251cyBhbHVzaXZvIGFvcyBkaXJlaXRvcyBhdXRvcmFpcywgYSB0P3R1bG8gZGUgZGl2dWxnYT8/byBkYSBwcm9kdT8/byBjaWVudD9maWNhLgo=Biblioteca Digital de Teses e Dissertaçõeshttp://tede2.pucrs.br/tede2/PRIhttps://tede2.pucrs.br/oai/requestbiblioteca.central@pucrs.br||opendoar:2023-07-05T15:00:20Biblioteca Digital de Teses e Dissertações da PUC_RS - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)false
dc.title.por.fl_str_mv Easing the benchmarking of parallel stream processing on multi-cores
dc.title.alternative.por.fl_str_mv Facilitando a avaliacao do processamento paralelo de stream em arquiteturas multi-nucleo
title Easing the benchmarking of parallel stream processing on multi-cores
spellingShingle Easing the benchmarking of parallel stream processing on multi-cores
Garcia, Adriano Marques
Stream Processing
Framework
Benchmark
Multi-corre
Processamento de Fluxo
Framework
Benchmark
Multi-núcleo
CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
title_short Easing the benchmarking of parallel stream processing on multi-cores
title_full Easing the benchmarking of parallel stream processing on multi-cores
title_fullStr Easing the benchmarking of parallel stream processing on multi-cores
title_full_unstemmed Easing the benchmarking of parallel stream processing on multi-cores
title_sort Easing the benchmarking of parallel stream processing on multi-cores
author Garcia, Adriano Marques
author_facet Garcia, Adriano Marques
author_role author
dc.contributor.advisor1.fl_str_mv Fernandes, Luiz Gustavo Leao
dc.contributor.advisor1Lattes.fl_str_mv http://lattes.cnpq.br/5979862734558983
dc.contributor.advisor-co1.fl_str_mv Griebler, Dalvan
dc.contributor.advisor-co1Lattes.fl_str_mv http://lattes.cnpq.br/1989039890812573
dc.contributor.advisor-co2.fl_str_mv Schepke, Claudio
dc.contributor.advisor-co2Lattes.fl_str_mv http://lattes.cnpq.br/6412713158883137
dc.contributor.authorLattes.fl_str_mv http://lattes.cnpq.br/8808580706231354
dc.contributor.author.fl_str_mv Garcia, Adriano Marques
contributor_str_mv Fernandes, Luiz Gustavo Leao
Griebler, Dalvan
Schepke, Claudio
dc.subject.eng.fl_str_mv Stream Processing
Framework
Benchmark
Multi-corre
topic Stream Processing
Framework
Benchmark
Multi-corre
Processamento de Fluxo
Framework
Benchmark
Multi-núcleo
CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
dc.subject.por.fl_str_mv Processamento de Fluxo
Framework
Benchmark
Multi-núcleo
dc.subject.cnpq.fl_str_mv CIENCIA DA COMPUTACAO::TEORIA DA COMPUTACAO
description No mundo de hoje impulsionado por dados e crescente expectativa por resultados imediatos, há uma demanda crescente por processamento de dados em tempo real/baixa latência. O processamento de stream é uma técnica que processa os dados à medida que eles se tornam disponíveis, permitindo o processamento de dados quase em tempo real. Para lidar com o processamento de grandes volumes de dados, aplicações de processamento de stream devem recorrer a técnicas de paralelismo para acelerar o processamento. Embora existam interfaces de programação paralela (IPPs) capazes de adicionar várias camadas de abstração, o paralelismo no processamento de stream ainda é uma tarefa difícil e que normalmente exige conhecimento especializado para atingir os níveis de desempenho desejados. Isso gera um grande esforço de pesquisa em direção à aumentar o desempenho do processamento paralelo de stream e tornar a programação paralela mais acessível. Tipicamente, benchmarks são usados para avaliar as IPPs e novas soluções nesse contexto. No entanto, existem várias limitações nos benchmarks existentes, incluindo a falta de benchmarks para algumas categorias de aplicações de processamento de stream, poucas ou nenhuma opção de parametrização, dificuldade em estender os benchmarks para outras IPPs, falta de métricas de desempenho adequadas, falta de preocupação com usabilidade, suporte apenas para linguagens baseadas na Java Virtual Machine (JVM), etc. Este trabalho propõe um framework chamado SPBench para criar benchmarks personalizados e avaliar o processamento paralelo de stream. Nosso principal objetivo é facilitar o processo de benchmarking no processamento de stream, incluindo a criação, compilação, execução, ajuste-fino e avaliação dos benchmarks. Portanto, esta tese de doutorado fornece as seguintes principais contribuições científicas: (I) Um framework que simplifica o benchmarking de aplicações de processamento de stream, fornecendo uma Application Programming Interface (API) e uma interface de linha de comando para simplificar, reutilizar código, personalizar, estender e avaliar diferentes aspectos ou propriedades em relação ao processamento paralelo de stream. (II) Um conjunto de benchmarks paralelos em C++ para processamento de stream que inclui aplicações do mundo real e as IPPs mais utilizadas neste contexto. (III) Um estudo comparativo abrangente das IPPs mais populares que usam o paralelismo de stream em C++. (IV) Mecanismos para simulação dinâmica de frequência de stream de dados em aplicações de processamento de stream, com um conjunto de algoritmos para gerar os padrões de frequência de stream de dados mais comumente usados na literatura e uma análise do impacto da frequência de dados no desempenho dessas aplicações. (V) Uma análise do impacto do tamanho de micro-batches no desempenho de aplicações de processamento de stream, incluindo mecanismos para controle dinâmico de batch baseado em tamanho específico ou intervalos de tempo. Testamos o framework SPBench com cinco aplicações do mundo real de processamento de vídeo/imagem, compressão de dados e detecção de fraudes. Neste trabalho nós tentamos mostrar os benefícios do SPBench usando-o em combinação com IPPs para gerar benchmarks de processamento paralelo de stream e realizar diversas análises. No geral, os resultados mostraram que as abstrações de alto nível das IPPs podem causar um grande impacto no desempenho quando abstraem mecanismos de ajuste fino. Nos experimentos de frequência de dados, a IPP FastFlow obteve mais benefícios de cenários de frequência variável do que o TBB em nossos casos de teste. Por fim, os resultados experimentais mostraram que a potencial vantagem de desempenho do uso de microbatches em ambientes multi-núcleo tende a aparecer apenas em cenários muito específicos
publishDate 2023
dc.date.accessioned.fl_str_mv 2023-07-04T18:42:01Z
dc.date.issued.fl_str_mv 2023-03-31
dc.type.status.fl_str_mv info:eu-repo/semantics/publishedVersion
dc.type.driver.fl_str_mv info:eu-repo/semantics/doctoralThesis
format doctoralThesis
status_str publishedVersion
dc.identifier.uri.fl_str_mv https://tede2.pucrs.br/tede2/handle/tede/10884
url https://tede2.pucrs.br/tede2/handle/tede/10884
dc.language.iso.fl_str_mv eng
language eng
dc.relation.program.fl_str_mv -4570527706994352458
dc.relation.confidence.fl_str_mv 500
500
600
dc.relation.cnpq.fl_str_mv -862078257083325301
dc.relation.sponsorship.fl_str_mv 3590462550136975366
dc.rights.driver.fl_str_mv info:eu-repo/semantics/openAccess
eu_rights_str_mv openAccess
dc.format.none.fl_str_mv application/pdf
dc.publisher.none.fl_str_mv Pontifícia Universidade Católica do Rio Grande do Sul
dc.publisher.program.fl_str_mv Programa de Pós-Graduação em Ciência da Computação
dc.publisher.initials.fl_str_mv PUCRS
dc.publisher.country.fl_str_mv Brasil
dc.publisher.department.fl_str_mv Escola Politécnica
publisher.none.fl_str_mv Pontifícia Universidade Católica do Rio Grande do Sul
dc.source.none.fl_str_mv reponame:Biblioteca Digital de Teses e Dissertações da PUC_RS
instname:Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
instacron:PUC_RS
instname_str Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
instacron_str PUC_RS
institution PUC_RS
reponame_str Biblioteca Digital de Teses e Dissertações da PUC_RS
collection Biblioteca Digital de Teses e Dissertações da PUC_RS
bitstream.url.fl_str_mv https://tede2.pucrs.br/tede2/bitstream/tede/10884/3/ADRIANO+MARQUES+GARCIA_TES.pdf.jpg
https://tede2.pucrs.br/tede2/bitstream/tede/10884/4/ADRIANO+MARQUES+GARCIA_TES.pdf.txt
https://tede2.pucrs.br/tede2/bitstream/tede/10884/2/ADRIANO+MARQUES+GARCIA_TES.pdf
https://tede2.pucrs.br/tede2/bitstream/tede/10884/1/license.txt
bitstream.checksum.fl_str_mv 04ac53ccf33b64cce6278ac60672ce38
c5505da575fdb4e320cc3144a335ddb5
3592ef3268f8a911e418ca47190005ba
220e11f2d3ba5354f917c7035aadef24
bitstream.checksumAlgorithm.fl_str_mv MD5
MD5
MD5
MD5
repository.name.fl_str_mv Biblioteca Digital de Teses e Dissertações da PUC_RS - Pontifícia Universidade Católica do Rio Grande do Sul (PUCRS)
repository.mail.fl_str_mv biblioteca.central@pucrs.br||
_version_ 1799765362553651200