És compatible amb la programació multi-core?

Concepts en programació multicore

Bàsics de programació multicore

La programació Multicore us ajuda a crear sistemes concurrents desplegament en sistemes multicore de processadors i multiprocessadors. Acard symbol multicore Sistema de processadors és un processador únic amb múltiples execucions El nucli en un xip. Per contrast, a Sistema multiprocessador ha múltiples processadors a la pissarra o xips. Un sistema multiprocessador Pot incloure una matriu de porta de camp- agent (FFGA). Un FPGA és un circuit integrat que conté una matriu de blocs de lògica programableName i una jerarquia de interconnexió reconfigurable. Acard symbol Processament node processos d' entrada de dades per produir sortides. Pot ser Un processador en un sistema multicontre o multiprocessador, o un FPGA.

L' aproximació multicora de programació pot ajudar quan:

Voleu aprofitar- vos del procés multicore i FPGA per augmentar l' rendiment d' un sistema encastat.

Voleu aconseguir escletibilitat per tal que el vostre sistema d' ús Pot aprofitar-se de l'augment de números de nuclis i processament FPGA Poder sobre el temps.

Sistemes concurrents que creeu usant programació multicore Tenir múltiples tasques executant- se en paral· lel. Això és conegut com concurrent execució . Quan un processador executa múltiples paral· leles tasques, es coneix com a Improfacte . Té una CPUName ▁firmware anomenat planificador, que gestiona les tasques que executin en paral·lel. La CPU implementa tasques usant fils de sistema operatiu. Les vostres tasques poden executar independentment però tenen alguna transferència de dades entre Ells, com ara la transferència de dades entre un mòdul d'adquisició de dades i Controlador pel sistema. La transferència de dades entre tasques vol dir que Hi ha un dependència de dades .

La programació multicore s' usa habitualment en el processament de senyals i sistemes de control de plantes. En el processament de senyals, podeu tenir una concurrent sistema que processa múltiples marcs en paral· lel. En el control de plantes sistemes, el controlador i la planta poden executar- se com a dos separats tasques. Usar la programació multicore ajuda a dividir el sistema múltiples tasques paral· leles, que s' executen simultàniament, augmentant la Temps d' execució global.

Tipus d' paral· lelisme

El concepte de programació multicore és tenir múltiples sistemes tasques executant- se en paral· lel. Tipus d' paral· lelisme inclou:

Dades paral· lelisme

Tasca paral· lelisme

PiponingCity name (optional, probably does not need a translation)

Dades paral· lelisme

Dades paral· lelisme implica processar múltiples peces de dades De forma independent en paral·lel. El processador realitza la mateixa operació a cada peça de dades. Podeu aconseguir paral· lelisme alimentant les dades en paral·lel.

La figura mostra el diagrama de temps d' aquest paral· lelisme. La L' entrada està dividida en quatre trossos, A, B, C i D. La mateixa operació F() és S' han aplicat a cada un d' aquests trossos i la sortida és O Acard symbol , O B , O C , i O D respectivament. Les quatre tasques són idèntiques, i s' executen en paral· leles.

El temps pres per cicle de processadors, conegut com a temps de cicle, és t = tF .

El temps total de processament també és tFunit description in lists , des de Totes quatre tasques funcionen simultàniament. En absència del paral·lelisme, Totes les quatre peces de dades estan processades per un node de processament. La El temps del cicle és tFunit description in lists per a cada tasca però el procés total l' hora és 4* tF , atès que les peces estan processades La successió.

Podeu usar dades paral· lelisme en escenaris on és possible per processar cada peça de dades d' entrada independentment. Per exemple, a Base de dades web amb conjunts de dades independents per a processar o processar Els marcs d'un vídeo independentment són bons candidats per a les dades paral· lelisme.

Tasca paral· lelisme

En contrast amb l' paral· lelisme, la tasca paral· lelisme no informa de l'el· lelisme Dividiu les dades d' entrada. En comptes d'això, aconsegueix paral·lelisme dividit a més d' una aplicació en múltiples tasques. La tasca paral· lelisme implica distribuir Tasques dins d' una aplicació a través de múltiples nodes de processament. Alguns Les tasques poden tenir dependència de dades en altres, de manera que totes les tasques no s' executen exactament al mateix temps.

Considereu un sistema que implica quatre funcions. Funcions F2a() i F2b() estan en paral·lel, és a dir, poden funcionar simultàniament. Entrada taskelisme, podeu dividir el vostre càlcul en dues tasques. La funció F2b() s' executa en un node de processament separat després de obtenir dades Des de la tasca 1, i torna a la tasca F3() a la tasca 1.

La figura mostra el diagrama de temps d' aquest paral· lelisme. Tasca No s' executa fins que rebi les dades fora1 de la tasca 1. Per tant, aquestes tasques No executis completament en paral· leles. El temps pres per cicle de processadors, El temps conegut com a cicle, és

t = tF1 + max(tF2a, tF2b) + tF3.

Podeu usar el paral· lelisme en escenaris com ara una fàbrica on s' executa la planta i el controlador en paral· lela.

Execució de línia de model (pipel· lant)

Usa l' execució de canonades de model, o paral· lelisme, per treballar el problema de l' paral· lelisme de tasca on els fils no s' executin completament en paral·lel. Aquesta aproximació implica modificar el model del sistema introdueix retards entre tasques on hi ha una dependència de dades.

En aquesta figura, el sistema està dividit en tres tasques a executar En tres nodes de processament diferents, amb retards introduïts entre Funcionalitats. A cada pas del temps, cada tasca pren el valor del Pas anterior del temps per mitjà del retard.

Cada tasca pot iniciar el procés alhora, en aquest moment Diagrames de diagrama. Aquestes tasques són realment paral· leles i ja no són En sèrie depèn de l'un de l'altre en un cicle de processador. El cicle El temps no té cap afegit però és el temps màxim de processament de totes les tasques.

t = max(Task1, Tasca2, Tasca3) = max(tF1, tF2a, tF2b, tF3).

Podeu usar paral· lelisme allà on pugueu introduir retards artificialment En el vostre sistema d' execució actual. El venciment resultant aquesta introducció no ha de superar el temps desat pel paral· lelisme.

Partició del sistema per al paral· lelisme

Els mètodes de partició us ajuden a ordenar àrees del vostre sistema per a l' execució concurrent. El separador us permet crear tasques independentment dels detalls del sistema objectiu en el qual l' aplicació Es fan servir.

Considera aquest sistema. F16F6 són funcions del sistema Això pot ser executat independentment. Una fletxa entre dues funcions indica una dependència de dades. Per exemple, l' execució del F5 té una dependència de dades en F3.

S' assigna l' execució d' aquestes funcions als diferents nodes de processadors a l' objectiu sistema. Les fletxes grises indiquen l' assignació de les funcions que s' usaran a la CPU o a la CPU El FPGA. El planificador de CPU determina quan s' executin tasques individuals. La CPU i el FPGA Es comunica mitjançant un bus de comunicació comú.

La figura mostra una possible configuració per a la particióció. @ info/ plain En general, proveu diferents configuracions i millora iterativament fins que obteniu la distribució òptima de tasques per a la vostra aplicació.

Reptes en programació multicore

Inclou manualment la vostra aplicació en un processador multicore O un FPGA suposa reptes més enllà dels problemes causats per codi manual. En execució concurrent, heu de seguir:

Planificació de les tasques que s' executen a l' encastat Processador multicore del sistema

Transferències de dades a i des del procés diferent nodes

Simulink gestiona l' implementació de les tasques i la transferència de dades entre tasques. També genera el codi que s'utilitza per al Aplicació. Per a més informació, mireu Programació multicore amb Simulink .

A més d'aquests reptes, hi ha reptes quan tu Voleu desplegar la vostra aplicació a diferents arquitectura i quan Voleu millorar el rendiment de l' aplicació que s' usa.

Portabilitat: D desplegament a diferents Arquitectures

La configuració del maquinari que executa l' aplicació que s' usa Es coneix com l'arquitectura. Pot contenir processadors multicore, Sistemes multiprocessadors, FPGA, o una combinació d'aquestes. D desplegament de la mateixa aplicació per a diferents arquitectures poden necessitar esforç degut a:

Un nombre diferent i tipus de nodes de processadors en arquitectura

Els estàndards de transferència de comunicacions i dades per a les arquitectura

Estàndards per a certs esdeveniments, sincronització, i Protecció de dades en cada arquitectura

Per a desplegar manualment l' aplicació, haureu de reassignar- la manualment Tasques per a diferents nodes de processament per a cada arquitectura. Potser sí. També cal tornar a implementar la vostra aplicació si s' usa cada arquitectura Funcionalitats diferents.

Difusència de desplegament

Podeu millorar el rendiment de la vostra aplicació d' edició per equilibri la càrrega dels diferents nodes de processament a la multicora Entorn de processament. Heu d'escorrar i millorar la vostra distribució. de tasques durant la partició, tal com s' ha mencionat@ info: status Partició del sistema per al paral· lelisme . Aquest procés implica Moure tasques entre diferents nodes de processament i provar el resultat rendiment. Com que és un procés iteratiu, necessita temps per trobar. la distribució més eficient.

Dependència de dades cíclices

Algunes tasques d' un sistema depenen de la sortida d' altres tasques. La dependència de dades entre tasques determina el seu ordre de processament. Dues o més particions que contenen dependències de dades en un cicle crea@ info: whatsthis un bucle de dependències de dades, també conegut com a Cicle d' algebèric .

Artículos Relacionados:

- Processador -

Esta web usa cookies, puedes ver la política de cookies, aquí -
Política de cookies +