338 resultados para cache-oblivious


Relevância:

10.00% 10.00%

Publicador:

Resumo:

This work presents the concept, design and implementation of a MP-SoC platform, named STORM (MP-SoC DirecTory-Based PlatfORM). Currently the platform is composed of the following modules: SPARC V8 processor, GPOP processor, Cache module, Memory module, Directory module and two different modles of Network-on-Chip, NoCX4 and Obese Tree. All modules were implemented using SystemC, simulated and validated, individually or in group. The modules description is presented in details. For programming the platform in C it was implemented a SPARC assembler, fully compatible with gcc s generated assembly code. For the parallel programming it was implemented a library for mutex managing, using the due assembler s support. A total of 10 simulations of increasing complexity are presented for the validation of the presented concepts. The simulations include real parallel applications, such as matrix multiplication, Mergesort, KMP, Motion Estimation and DCT 2D

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Cette étude a comme sujet principal la formation humaine de l instituteur. L objectif général est d analyser et décrire les conditions créées par les vécus d un atelier corps biographique pour la resignification de la corporéité de l instituteur, fixant les questions suivantes pour l investigation : Quelles sont les implications du vécu de l atelier corps biographique dans la vie des instituteurs ? La recherche a été exposée sur l approche qualitative, suivant les principes de la recherche-action reliée à la méthode des histoires de vie. Pour révéler la beauté et la complexité du processus poïétique de la formation humaine, nous nous sommes servi de la métaphore du "dessus de lit en patchwork" comme opérateur cognitif en attachant les principes de la corporéité fondés sur la Théorie de la complexité (MORIN, 2005), la Théorie autopoïétique (MATURANA ; VARELA, 2001), la Théorie du flux (CSIKSZENTMIHALYI, 1999), les approches de transdisciplinarité (LA TORRE; MORAES, 2008), et d autobiographie (JOSSO, 2004; PINEAU, 2003; PASSEGGI, 2000;), joignant la conception de l éducation comme pratique d autonomie, de liberté, d espoir et de l enchantement (FREIRE, 1996, 1992; ASSMANN, 1995). Nous avons eu comme scène du développement de la recherche, l Unidade Educacional Infantil (UEI), la garderie qui accueille les enfants des fonctionnaires de l Université Fédérale du Rio Grande do Norte. Treise élèves (enfants), des institutrices titulaires, vacataires, boursières ont participé de l'investigation. En conptant sur eux, nous avons développé un atelier corps biographique, dans lequel nous avons réalisé 10 vécus dans la période qui a couvert le deuxième semestre de 2007 jusqu au deuxième semestre de 2008, en manifestant la réflexivité autobiographique, le ludique, la créativité, la sensibilité et la réflexivité du vécu. Nous avons utilisé comme instruments pour la construction des donnés, l observation participante, les propres vécus, le port folio, la technique du jeu de sable et l'enregistrement photographique. L analyse a montré que le vécu de la formation humaine à partir des principes de la corporéité, implique dans un parcours vers soi-même dans lequel émergent les expériences qui nous ont constitués en tant qu êtres existentiels. Pour finaliser, nous avons aperçu les répercussions dans la vie professionnelle et personnelle de ces institutrices, qui comme moi pensaient avoir besoin d exposer leur luminosité intérieure pour que l on la redécouvre. Lors des vécus des tissages, les institutrices se sont montrées impliquées aux moments de jeux, de création, de réalisation, d afection et d action réflexive, dans lesquelles la teneur humaine cachée, a été révélée, en ouvrant les possibilités pour le sentiment du mouvement de naissance de l humanisation intérieure. Pour conclure, le corps joyeux de savoir et de beauté a été révélé, et dans sa rencontre avec soi-même et avec l autre, a pu être auto- recréé

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP)

Relevância:

10.00% 10.00%

Publicador:

Resumo:

By comparing the behavior of three Acromyrmex (Hymenoptera, Formicidae) species during foraging on artificial trails of different lengths, we observed the occurrence of task partitioning and its relation to the food distance from the nest. Task partitioning was verified by leaf cache formation along the trail and leaf direct transferring among workers. There was significant difference between the number of leaf fragments carried directly to the fungus chamber and those transferred direct or indirectly, via cache, depending upon the trail length. Task partitioning could be a strategy used by leaf-cutting ants that allows the workers to use food sources far from their nests.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Pós-graduação em Ciência da Computação - IBILCE

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Coordenação de Aperfeiçoamento de Pessoal de Nível Superior (CAPES)

Relevância:

10.00% 10.00%

Publicador:

Resumo:

O trabalho escravo inaugurado durante a colonização do Brasil, ainda se faz presente hoje. Mesmo em pleno século XXI, é corriqueiro o conhecimento de notícias e evidências da incidência de exploração do trabalhador em condições análogas às de escravo. O novo panorama do trabalho escravo traz novas causas, diferentes cativeiros e as formas mais cruéis de exploração do ser humano. No caso da Amazônia, pesquisas, dados e estudos apontam que as atividades vinculadas ao desmatamento na região têm relação direta com a incidência de casos de submissão de trabalhadores a condições análogas às de escravo. Em que pese os governos anunciarem medidas de caráter emergencial para combater o desmatamento, tais medidas têm sido pouco eficientes para reverter esta tendência histórica. Nesse contexto, o Estado do Pará não está alheio a essa realidade, apresentando-se como um território de graves conflitos, não só por questões fundiárias e de exploração predatória e ilegal de madeira, como também pelos altos índices de desmatamento e por graves violações de direitos humanos, fatores que têm efeitos ainda mais preocupantes em regiões de difícil acesso como o Arquipélago do Marajó. O presente estudo tem por escopo analisar relação entre o trabalho análogo ao de escravo com a dinâmica do desmatamento na Amazônia, especialmente com estudo de caso que relaciona a exploração madeireira e os casos de trabalho análogo ao de escravo no território do Arquipélago do Marajó.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Pós-graduação em Engenharia Elétrica - FEIS

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Fire scar and vegetative analysis were used to construct a fire history for the Engelmann spruce/subalpine fir (Picea engelmannii/Abies lasiocarpa) vegetation type of the Utah State University (USU) T. W Daniel Experimental Forest. Three distinct periods of fire frequency were established-presettlement (1700-1855), settlement (1856-1909), and suppression (1910-1990). Mean fire interval (MFI) decreased during the settlement period and greatly increased during the suppression era. The difference was attributed to the influx of ignition sources during the settlement of nearby Cache Valley, located 40 km to the west. Logging and livestock grazing appear to have led to the reduced MFI, which in turn worked as a factor to create the vegetative mosaic now observed on the study area. The increase in MFI during the suppression era permitted the advancement of shade-tolerant species in the understory of the shade-intolerant lodgepole pine (Pinus contorta var. latifolia) and quaking aspen (Populus tremuloides). Continued suppression of disturbance from wildfire will allow the lodgepole pine cover type, which experienced the lowest MFI during the settlement period, to be further invaded by shade-tolerant species, decreasing spatial stand diversity and increasing the risk of more intense fires.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

[ES] Un servicio de urgencias de una zona ofrece asistencia sanitaria y tiene como principal objetivo atender la patología urgente que acude al hospital y el nivel de compromiso que se asume consiste en diagnosticar, tratar y estabilizar, en la medida posible, dicha patología urgente. Otro objetivo es gestionar la demanda de atención urgente por parte del ciudadano a través de un sistema de selección prioritaria inicial (Triaje) que selecciona, prioriza, organiza y gestiona la demanda de atención. Para poder controlar y realizar el trabajo de la forma más eficaz se utilizan herramientas de gestión necesarias para el control de los pacientes, desde que se realiza su ingreso en el servicio de urgencias hasta el alta del mismo. Las aplicaciones desarrolladas son las siguientes: Gestión de Pacientes en Urgencias: Esta aplicación asignará un estado inicial al paciente y permitirá ir cambiando el estado del mismo usando el método del Triaje (valoración), el más difundido en la medicina de urgencias. Además, se podrán solicitar pruebas diagnósticas y la visualización de marcadores de analíticas para comprobar su evolución. Finalmente, se podrá desarrollar un informe de alta para el paciente. Informadores de Urgencias: La aplicación gestiona la localización física del paciente dentro del servicio de urgencias, permitiendo asimismo el cambio entre las distintas localizaciones y el control para la información a los familiares de los mismos, pudiendo almacenar los familiares y teléfonos de contactos para que estos puedan ser informados. El desarrollo se ha realizado utilizando el MVC (modelo - vista - controlador) que es patrón de arquitectura que separa los datos de una aplicación, la interfaz gráfica de usuario y la lógica de control de componentes. El software utilizado para el desarrollo de las aplicaciones es CACHÉ de Intersystems que permite la creación de una base de datos multidimensional. El modelo de objetos de Caché se basa en el estándar ODMG (Object Database Management Group, Grupo de gestión de bases de datos de objetos) y soporta muchas características avanzadas. CACHÉ dispone de Zen, una biblioteca completa de componentes de objetos preconstruidos y herramientas de desarrollo basadas en la tecnología CSP (Caché Server Pages) y de objetos de InterSystems. ZEN es especialmente apropiado para desarrollar una versión Web de las aplicaciones cliente/servidor creadas originalmente con herramientas como Visual Basic o PowerBuilder.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

[ES] La vectorización es un proceso de explotación de paralelismo de datos muy potente que, bien usado permite obtener un mejor rendimiento de la ejecución de las aplicaciones. Debido a ello, hoy en día muchos procesadores incluyen extensiones vectoriales en su repositorio de instrucciones. Para las máquinas basadas en estos procesadores, existen multitud de compiladores que permiten explotar la vectorización. Sin embargo, no todas las aplicaciones experimentan una mejora en el rendimiento cuando son vectorizadas, y no todos los compiladores son capaces de extraer el mismo rendimiento vectorial de las aplicaciones. Este trabajo presenta un estudio exhaustivo del rendimiento de diversas aplicaciones numéricas, con el objetivo de determinar el grado de utilización efectiva de la unidad vectorial. Tras seleccionar los benchmarks Polyhedron, Mantevo, Sequoia, SPECfp y NPB, se compilaron activando la vectorización y se simularon en una versión modificada del simulador de cache CMPSim, enriquecida con un núcleo basado en el coprocesador Intel Xeon Phitm. En aquellos casos en que la utilización era baja, se realizó un diagnóstico a nivel de software de la fuente del problema y se propusieron mejoras que podrían aumentar el uso efectivo de la unidad vectorial. Para aquellas aplicaciones limitadas por memoria, se realizó un diagnóstico a nivel de hardware con el fin de determinar hasta que punto el diseño de la máquina repercute en el rendimiento de la aplicación en casos de buen uso de la unidad vectorial.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

I moderni sistemi embedded sono equipaggiati con risorse hardware che consentono l’esecuzione di applicazioni molto complesse come il decoding audio e video. La progettazione di simili sistemi deve soddisfare due esigenze opposte. Da un lato è necessario fornire un elevato potenziale computazionale, dall’altro bisogna rispettare dei vincoli stringenti riguardo il consumo di energia. Uno dei trend più diffusi per rispondere a queste esigenze opposte è quello di integrare su uno stesso chip un numero elevato di processori caratterizzati da un design semplificato e da bassi consumi. Tuttavia, per sfruttare effettivamente il potenziale computazionale offerto da una batteria di processoriè necessario rivisitare pesantemente le metodologie di sviluppo delle applicazioni. Con l’avvento dei sistemi multi-processore su singolo chip (MPSoC) il parallel programming si è diffuso largamente anche in ambito embedded. Tuttavia, i progressi nel campo della programmazione parallela non hanno mantenuto il passo con la capacità di integrare hardware parallelo su un singolo chip. Oltre all’introduzione di multipli processori, la necessità di ridurre i consumi degli MPSoC comporta altre soluzioni architetturali che hanno l’effetto diretto di complicare lo sviluppo delle applicazioni. Il design del sottosistema di memoria, in particolare, è un problema critico. Integrare sul chip dei banchi di memoria consente dei tempi d’accesso molto brevi e dei consumi molto contenuti. Sfortunatamente, la quantità di memoria on-chip che può essere integrata in un MPSoC è molto limitata. Per questo motivo è necessario aggiungere dei banchi di memoria off-chip, che hanno una capacità molto maggiore, come maggiori sono i consumi e i tempi d’accesso. La maggior parte degli MPSoC attualmente in commercio destina una parte del budget di area all’implementazione di memorie cache e/o scratchpad. Le scratchpad (SPM) sono spesso preferite alle cache nei sistemi MPSoC embedded, per motivi di maggiore predicibilità, minore occupazione d’area e – soprattutto – minori consumi. Per contro, mentre l’uso delle cache è completamente trasparente al programmatore, le SPM devono essere esplicitamente gestite dall’applicazione. Esporre l’organizzazione della gerarchia di memoria ll’applicazione consente di sfruttarne in maniera efficiente i vantaggi (ridotti tempi d’accesso e consumi). Per contro, per ottenere questi benefici è necessario scrivere le applicazioni in maniera tale che i dati vengano partizionati e allocati sulle varie memorie in maniera opportuna. L’onere di questo compito complesso ricade ovviamente sul programmatore. Questo scenario descrive bene l’esigenza di modelli di programmazione e strumenti di supporto che semplifichino lo sviluppo di applicazioni parallele. In questa tesi viene presentato un framework per lo sviluppo di software per MPSoC embedded basato su OpenMP. OpenMP è uno standard di fatto per la programmazione di multiprocessori con memoria shared, caratterizzato da un semplice approccio alla parallelizzazione tramite annotazioni (direttive per il compilatore). La sua interfaccia di programmazione consente di esprimere in maniera naturale e molto efficiente il parallelismo a livello di loop, molto diffuso tra le applicazioni embedded di tipo signal processing e multimedia. OpenMP costituisce un ottimo punto di partenza per la definizione di un modello di programmazione per MPSoC, soprattutto per la sua semplicità d’uso. D’altra parte, per sfruttare in maniera efficiente il potenziale computazionale di un MPSoC è necessario rivisitare profondamente l’implementazione del supporto OpenMP sia nel compilatore che nell’ambiente di supporto a runtime. Tutti i costrutti per gestire il parallelismo, la suddivisione del lavoro e la sincronizzazione inter-processore comportano un costo in termini di overhead che deve essere minimizzato per non comprometterre i vantaggi della parallelizzazione. Questo può essere ottenuto soltanto tramite una accurata analisi delle caratteristiche hardware e l’individuazione dei potenziali colli di bottiglia nell’architettura. Una implementazione del task management, della sincronizzazione a barriera e della condivisione dei dati che sfrutti efficientemente le risorse hardware consente di ottenere elevate performance e scalabilità. La condivisione dei dati, nel modello OpenMP, merita particolare attenzione. In un modello a memoria condivisa le strutture dati (array, matrici) accedute dal programma sono fisicamente allocate su una unica risorsa di memoria raggiungibile da tutti i processori. Al crescere del numero di processori in un sistema, l’accesso concorrente ad una singola risorsa di memoria costituisce un evidente collo di bottiglia. Per alleviare la pressione sulle memorie e sul sistema di connessione vengono da noi studiate e proposte delle tecniche di partizionamento delle strutture dati. Queste tecniche richiedono che una singola entità di tipo array venga trattata nel programma come l’insieme di tanti sotto-array, ciascuno dei quali può essere fisicamente allocato su una risorsa di memoria differente. Dal punto di vista del programma, indirizzare un array partizionato richiede che ad ogni accesso vengano eseguite delle istruzioni per ri-calcolare l’indirizzo fisico di destinazione. Questo è chiaramente un compito lungo, complesso e soggetto ad errori. Per questo motivo, le nostre tecniche di partizionamento sono state integrate nella l’interfaccia di programmazione di OpenMP, che è stata significativamente estesa. Specificamente, delle nuove direttive e clausole consentono al programmatore di annotare i dati di tipo array che si vuole partizionare e allocare in maniera distribuita sulla gerarchia di memoria. Sono stati inoltre sviluppati degli strumenti di supporto che consentono di raccogliere informazioni di profiling sul pattern di accesso agli array. Queste informazioni vengono sfruttate dal nostro compilatore per allocare le partizioni sulle varie risorse di memoria rispettando una relazione di affinità tra il task e i dati. Più precisamente, i passi di allocazione nel nostro compilatore assegnano una determinata partizione alla memoria scratchpad locale al processore che ospita il task che effettua il numero maggiore di accessi alla stessa.

Relevância:

10.00% 10.00%

Publicador:

Resumo:

Modern embedded systems embrace many-core shared-memory designs. Due to constrained power and area budgets, most of them feature software-managed scratchpad memories instead of data caches to increase the data locality. It is therefore programmers’ responsibility to explicitly manage the memory transfers, and this make programming these platform cumbersome. Moreover, complex modern applications must be adequately parallelized before they can the parallel potential of the platform into actual performance. To support this, programming languages were proposed, which work at a high level of abstraction, and rely on a runtime whose cost hinders performance, especially in embedded systems, where resources and power budget are constrained. This dissertation explores the applicability of the shared-memory paradigm on modern many-core systems, focusing on the ease-of-programming. It focuses on OpenMP, the de-facto standard for shared memory programming. In a first part, the cost of algorithms for synchronization and data partitioning are analyzed, and they are adapted to modern embedded many-cores. Then, the original design of an OpenMP runtime library is presented, which supports complex forms of parallelism such as multi-level and irregular parallelism. In the second part of the thesis, the focus is on heterogeneous systems, where hardware accelerators are coupled to (many-)cores to implement key functional kernels with orders-of-magnitude of speedup and energy efficiency compared to the “pure software” version. However, three main issues rise, namely i) platform design complexity, ii) architectural scalability and iii) programmability. To tackle them, a template for a generic hardware processing unit (HWPU) is proposed, which share the memory banks with cores, and the template for a scalable architecture is shown, which integrates them through the shared-memory system. Then, a full software stack and toolchain are developed to support platform design and to let programmers exploiting the accelerators of the platform. The OpenMP frontend is extended to interact with it.