Les extensions d’idiomes consecutius a paral•lels tenen poc o cap futur, segons el creador de CAPER Sergey Vartanov

Sergey Rubenovich Vartanov és especialista en computació paral•lela, gramàtiques formals, compilació i interpretació de programes, organització d’emmagatzematge d’informació, reconeixement limitat d’idiomes naturals i comprensió. Doctor en Física i Matemàtiques (1988) i creador del llenguatge de programació CAPER per a computació paral•lela.

Quines són les principals solucions per als càlculs computacionals paral•lels ara?

Les principals solucions de paral•lelització informàtica en el mercat es poden dividir en multiprocessador (GPU de matriu de diversos nuclis; és a dir, amb alta integració electrònica) i multimáquina (clústers on els “pioners” arquitectònics són Cray i IBM), combinant homogeni i / o dispositius informàtics heterogenis que empren comunicacions externes a les computadores. Per exemple, una de les opcions creades per Cray va combinar moltes de les seves màquines de canonada vectorial basades en J-90, el multiprocessador AMD Opteron per a computació escalar i grups de processadors matricials de Nvidia, proporcionant així els tipus de computació més comunes.

El programari de computació paral•lela, que s’ha desenvolupat des de principis dels 90, es basa principalment en una extensió dels coneguts llenguatges C / C ++, Java i altres llenguatges de programació. Existeixen solucions basades en la propietat d’implementació paral•lela d’operadors recursivos, interpretacions paral•leles del llenguatge LISP i llenguatges similars a LISP.

El CUDA, F # i alguns altres idiomes se centren en la descripció i preparació de les transformacions matricials en la GPU. S’utilitzen biblioteques de programari especialitzades que permeten càlculs simultanis en un entorn de clúster (en particular, basat en MPI), OpenCL per a programació de GPU i tasques similars. Finalment, l’eina de paral•lelització més comuna per a computadores multiprocessador / multinúcleo és el mitjà multitarea dels sistemes operatius relacionats amb els anomenats processos paral•lels “pesats”.

Quin és el seu enfocament per als càlculs paral•lels?

El fet és que la majoria de les tasques de programació quan s’usa el paral•lelisme apunta a augmentar la productivitat en problemes de modelatge computacional i en el processament de grans quantitats de dades. Inicialment vaig apuntar a tasques que simulen el comportament de molts objectes.

En 1992, vaig establir la tasca de crear un llenguatge de programació que se centrés completament en la possibilitat d’una descripció expressiva dels programes executables simultàniament per a totes les classes de taxonomia de Flynn.

He resolt el problema de desenvolupament d’eines de programació per a molts processos paral•lels homogenis o heterogenis que realitzen transformacions en dades generals o compartides i processen esdeveniments que ocorren de manera asincrònica.

Es van establir els següents objectius:

• Proporciona diferents interpretacions d’instruccions de llenguatge escrites de manera idèntica per a diferents arquitectures (per tant, el suport d’idiomes es divideix en característiques sintàctiques i semàntiques i un complex de màquines virtuals que es connecten quan és necessari depenent de les propietats actuals de l’entorn informàtic).
• La capacitat de crear la seva màquina virtual que proporciona el seu propi inici i control de processos pseudo-paral•lels lleugers, sense dependre de les capacitats del sistema operatiu, arquitectures específiques i coses similars.
• Les unitats lògiques de paral•lelització de programari han de definir-se explícitament en l’estructura dels programes; és a dir, l’estructuració dels textos del programa ha de complir amb les tasques de paral•lelització (el llenguatge té els mitjans d’agrupar variables (dades) utilitzats de manera conjunta i separada per processos paral•lels).
• Brindant oportunitats per a l’organització modular dels programes, l’organització de superposicions, una compilació dinàmica de mòduls de codi font en mòduls d’objecte (jitter), transport de mòduls de codi font i objecte a diverses instal•lacions informàtiques en un entorn de múltiples màquines.

Les dues primeres versions d’idioma es van fer per a MS-DOS. I si el DOS mateix va permetre iniciar dos processos pseudo-paral•lels, llavors vaig tenir l’oportunitat d’iniciar diversos milers de processos en el processador 386 amb un temps d’execució acceptable. En 1995, va aparèixer la primera aplicació comercial dedicada a anàlisi d’informació i rubricación. A la fi dels 90, la tercera versió de l’idioma es va crear per a Windows, més tard, per a UNIX i altres plataformes. El nom CAPER reflecteix part de l’essència del llenguatge: la capacitat de compilació dinàmica i el processament d’esdeveniments paral•lels asincrònics.

Què es va aconseguir sobre la base dels seus desenvolupaments i on es van aplicar?

CAPER no és inferior en velocitat a SystemC (un llenguatge per a dissenyar i verificar models a nivell de sistema implementat en la forma de biblioteca C ++) utilitzat en el disseny de xips, inclosa la simulació de treball de molts elements estructurals interactius (processadors, memòria, etc.) . A més, a diferència de SystemС, Caper és més ràpid en manera paral•lela, i el nombre de processos paral•lels està limitat només per la grandària de RAM. Caper és 25-30% més ràpid que Java per a computació seqüencial i qualitativament més ràpid quan es treballa amb molts processos paral•lels (els desenvolupadors de Java no entenien els processos lleugers, encara que van planejar fer-ho en la primera meitat dels 90).

Avui, es desenvolupa la cinquena versió, que té una màquina virtual distribuïda entre els nuclis del processador com una de les característiques. Això va permetre un augment significatiu en el rendiment informàtic. Per exemple, pot executar simultàniament més d’un milió de processos paral•lels que simulen l’automatització cel•lular sense l’ús de sistemes operatius multitarea.

L’avantatge d’usar el llenguatge és la solució a problemes com ara:

• Aïllament i codificació d’aproximadament mil cinc-cents elements de l’iris per al projecte Synapse Communications Inc. (el Japó).
• Coincidència i comparació d’imatges per a cerca i reconeixement de “coses necessàries” en projectes d’imatges per a NurVentures, Inc. (els EUA).
• Creació d’un algorisme d’agrupació d’imatges de paral•lel ràpid per a Memcosoft, Inc. (els EUA-Armènia), que inclou un editor gràfic en llenguatge Caper.
• Processament paral•lel de dades de radiografia mèdica per a Course-AS (Rússia).
• Simulació de sistemes “miops” (autòmat cel•lular, xarxes neuronals).

Les extensions d’idiomes consecutius a les paral•leles tenen poc o cap futur. Això es deu al fet que no consideren els requisits substancials de la filosofia del paral•lelisme, el poder expressiu estructural dels codis font dels programes orientats al processament paral•lel.

La computació paral•lela és un tema gegantesc, amb problemes molt amplis en cada direcció. El tema per a diverses generacions de matemàtics, desenvolupadors i programadors. El món separat. Si consideres que sóc un escèptic (amb justificació!) Respecte a les possibilitats de creació de computadores quàntiques en tota regla, llavors, crec, els especialistes passaran les pròximes dècades en aquest món i en cap altre.

Com va començar la seva recerca en computació en paral•lel?

Va començar gairebé immediatament després de la graduació, quan vaig dirigir un grup per a crear un sistema de gestió per a distribuir complexos informàtics per al processament d’informació espacial. En 1982 es va crear la teoria dels sistemes de permutació paral•lela en Novosibirsk. La teoria és una extensió de l’autòmat cel•lular von Neumann. El primer amor, com saps, és per a tota la vida.

Després m’he ocupat dels problemes de la paral•lelització automàtica de programari. I després em vaig convèncer bastant ràpid que la paral•lelització automàtica és ineficaç en el cas general. Començant amb les classes més simples de programes en els quals les declaracions de decisió estan presents (no els seus casos especials), és algorítmicament impossible predir la paral•lelització màxima possible del programari. A més, no existeixen estratègies universalment inequívocament eficaces per a la distribució automàtica de càlculs entre computadores (per exemple, en els casos en què les instruccions executables simultàniament, els procediments, el número de subprocesos del programa excedeix el nombre de dispositius físics). Un exemple típic de falles en aquesta direcció és el conegut projecte HPF.

En general, els algorismes i la programació de càlcul concurrent requereixen no sols un coneixement considerable del problema del paral•lelisme, sinó també una considerable sofisticació i enginy. Això és per a respondre a la pregunta de si els algorismes i la programació són art o enginyeria. D’aquí la conclusió, que es va convertir en un incentiu per a mi per a tot el treball posterior: programació imperativa, és a dir, programació amb una indicació directa de les instruccions i procediments dels programes que s’executaran en paral•lel.

Entrevista: Ivan Stepanyan

Read more: Ciència i enginyeria modernes amb Ivan Stepanyan ...