Automatic parallelization (original) (raw)

About DBpedia

Automatic parallelization, also auto parallelization, or autoparallelization refers to converting sequential code into multi-threaded and/or vectorized code in order to use multiple processors simultaneously in a shared-memory multiprocessor (SMP) machine. Fully automatic parallelization of sequential programs is a challenge because it requires complex program analysis and the best approach may depend upon parameter values that are not known at compilation time.

Property Value
dbo:abstract Automatic parallelization, also auto parallelization, or autoparallelization refers to converting sequential code into multi-threaded and/or vectorized code in order to use multiple processors simultaneously in a shared-memory multiprocessor (SMP) machine. Fully automatic parallelization of sequential programs is a challenge because it requires complex program analysis and the best approach may depend upon parameter values that are not known at compilation time. The programming control structures on which autoparallelization places the most focus are loops, because, in general, most of the execution time of a program takes place inside some form of loop.There are two main approaches to parallelization of loops: pipelined multi-threading and cyclic multi-threading. For example, consider a loop that on each iteration applies a hundred operations, and runs for a thousand iterations. This can be thought of as a grid of 100 columns by 1000 rows, a total of 100,000 operations. Cyclic multi-threading assigns each row to a different thread. Pipelined multi-threading assigns each column to a different thread. (en) Paralelización automática, también auto paralelización, autoparalelización, o paralelización, se refiere a convertir código secuencial en multihilo o vectorizado (o los dos) con objeto de utilizar múltiples procesadores simultáneamente en una máquina con multiprocesador (SMP) de memoria compartida. La utilidad de la paralelización automática es liberar a los programadores del proceso tedioso y tendente a errores de la paralelización manual. Aunque la calidad de la automatización paralela ha mejorado en las últimas décadas, una paralelización automática completa de programas secuenciales por un compilador sigue siendo un gran reto, ya que necesita de un complejo análisis informático, y a los factores desconocidos(como el rango de los datos de entrada) durante la compilación.​ Las estructuras de control de programación en las que la autoparalelización se centra son los bucles, ya que, en general, la mayor parte del tiempo de ejecución de un programa tiene lugar en el interior de algún bucle. Un compilador paralelo intenta dividir un bucle de forma que sus iteraciones puedan ser ejecutadas en microprocesadores separados de forma concurrente. (es) La Parallélisation automatique est une étape de la compilation d'un programme qui consiste à transformer un code source écrit pour une machine séquentielle en un exécutable parallélisé pour ordinateur à Symmetric multiprocessing. L'objectif de la parallélisation automatique est de simplifier et de réduire la durée de développement des programmes parallèles, qui sont notablement plus compliqués à écrire que les programmes séquentiels mais permettent des gains de vitesse sur les machines parallèles. Les compilateurs pour assurer cette parallélisation ne sont en 2010 pas opérationnel pour un grand nombre de types d'algorithmes séquentiels, bien que quelques techniques soit mises en place depuis les années 2000. Les grandes différences entre architectures, notamment au niveau de la gestion de la mémoire, compliquent la faisabilité de tels compilateurs. (fr) In informatica la parallelizzazione automatica, o autoparallelizzazione, si riferisce alla conversione automatica da parte di compilatori di codice sequenziale in codice multi-threaded o vettoriale, o entrambi, in modo da utilizzare contemporaneamente tutte le unità di calcolo dei processori multi-core. Questa operazione serve dunque ad incrementare le prestazioni in termini di conversione di codice in forma parallelizzata eliminando l'onere al programmatore di dover tenere conto di tutte le variabili che intervengono nella parallelizzazione manuale. Nonostante questa tecnica sia in sviluppo da un decennio, la completa parallelizzazione automatica resta una delle operazioni più complesse che un parser o una macchina virtuale devono eventualmente eseguire. (it) Автоматическое распараллеливание — оптимизация программы компилятором, состоящая в автоматическом её преобразовании в форму, работающую на параллельном компьютере, например, на SMP или NUMA машине. Целью автоматизации распараллеливания является освобождение программиста от трудоемкого и подверженного ошибкам процесса ручного распараллеливания. Несмотря на то, что качество автоматического распараллеливания улучшалось последние годы, полное распараллеливание последовательных программ остается слишком сложной задачей, требующей сложнейших видов анализа программ. Автоматический параллелизатор обычно фокусируется на таких управляющих конструкциях, как циклы, обрабатывающие массивы, поскольку, в общем случае, большая часть выполнения программы проходит внутри каких-то циклов. Распараллеливающий компилятор пытается разделить цикл на части так, чтобы его отдельные итерации могли исполняться на разных процессорах одновременно. (ru) Автоматичне розпаралелювання – це конвертування коду в багатопотоковий, що працює на паралельному комп'ютері (наприклад, на комп'ютері з багатьма процесорами, процесорними ядрами або потоками виконання). Метою автоматизації розпаралелювання є звільнення програміста від трудомісткого процесу ручного розпаралелювання. Незважаючи на те, що якість автоматичного розпаралелювання значно покращилася за останні роки, повне розпаралелювання послідовних програм залишається занадто складним завданням, що вимагає дуже складних видів аналізу програм та ПЗ. Автоматичний паралелізатор зазвичай фокусується на таких керуючих конструкціях, як цикли, оскільки, в загальному випадку, більша частина виконання програми проходить всередині якихось циклів. Є два основні підходи до розпаралелювання циклів: і . (uk)
dbo:wikiPageExternalLink http://Https/engineering.purdue.edu/Cetus/Documentation/manual/ch02s02.html https://dl.acm.org/doi/10.1155/1999/304639 https://scholarship.rice.edu/handle/1911/16677 http://www.ece.northwestern.edu/cpdc/Paradigm/Paradigm.html https://archive.org/details/byte-magazine-1989-12/page/n382/mode/1up
dbo:wikiPageID 2537264 (xsd:integer)
dbo:wikiPageLength 14466 (xsd:nonNegativeInteger)
dbo:wikiPageRevisionID 1078862061 (xsd:integer)
dbo:wikiPageWikiLink dbr:BMDFM dbr:BYTE_(magazine) dbr:Program_analysis_(computer_science) dbr:Message_passing dbr:Alias_analysis dbr:Aliasing_(computing) dbr:Dependence_analysis dbr:Scalable_parallelism dbr:Compiler dbr:Run_time_(program_lifecycle_phase) dbr:SUIF dbr:Source-to-source_compiler dbr:Transputer dbr:Control_flow dbr:Computer_configuration dbr:COFDM dbr:C_(programming_language) dbc:Compiler_optimizations dbr:Distributed_memory dbr:Analyzer dbr:Fortran dbr:Iteration dbr:Source_code dbc:Parallel_computing dbr:High_Performance_Fortran dbr:Vector_Fabrics,_B.V. dbc:Articles_with_example_Fortran_code dbr:Automatic_vectorization dbr:Speculative_multithreading dbr:McGraw-Hill,_Inc. dbr:Microprocessor dbr:Occam_(programming_language) dbr:OpenHMPP dbr:OpenMP dbr:SequenceL dbr:Shared_memory_(interprocess_communication) dbr:Loop_nest_optimization dbr:Loop_splitting dbr:Vectorization_(disambiguation) dbr:Token_(parser) dbr:Motion_compensation dbr:Scheduling_(computing) dbr:Parallel_processing_(computing) dbr:Symmetric_multiprocessing dbr:Polytope_model dbr:Parallel_rendering dbr:Systolic_array dbr:Pre-processor dbr:Pipes_and_filters dbr:Multiprocessor dbr:Pleasingly_parallel dbr:Multi-threaded
dbp:wikiPageUsesTemplate dbt:Citation_needed dbt:Cite_magazine dbt:Main dbt:Refimprove dbt:Reflist dbt:See_also dbt:Use_dmy_dates dbt:Use_list-defined_references dbt:Compiler_optimizations
dct:subject dbc:Compiler_optimizations dbc:Parallel_computing dbc:Articles_with_example_Fortran_code
rdf:type owl:Thing yago:WikicatCompilers yago:CausalAgent100007347 yago:Communicator109610660 yago:Compiler109946957 yago:LivingThing100004258 yago:Object100002684 yago:Organism100004475 yago:Person100007846 yago:PhysicalEntity100001930 yago:Writer110794014 yago:YagoLegalActor yago:YagoLegalActorGeo yago:Whole100003553
rdfs:comment Automatic parallelization, also auto parallelization, or autoparallelization refers to converting sequential code into multi-threaded and/or vectorized code in order to use multiple processors simultaneously in a shared-memory multiprocessor (SMP) machine. Fully automatic parallelization of sequential programs is a challenge because it requires complex program analysis and the best approach may depend upon parameter values that are not known at compilation time. (en) Paralelización automática, también auto paralelización, autoparalelización, o paralelización, se refiere a convertir código secuencial en multihilo o vectorizado (o los dos) con objeto de utilizar múltiples procesadores simultáneamente en una máquina con multiprocesador (SMP) de memoria compartida. La utilidad de la paralelización automática es liberar a los programadores del proceso tedioso y tendente a errores de la paralelización manual. Aunque la calidad de la automatización paralela ha mejorado en las últimas décadas, una paralelización automática completa de programas secuenciales por un compilador sigue siendo un gran reto, ya que necesita de un complejo análisis informático, y a los factores desconocidos(como el rango de los datos de entrada) durante la compilación.​ (es) In informatica la parallelizzazione automatica, o autoparallelizzazione, si riferisce alla conversione automatica da parte di compilatori di codice sequenziale in codice multi-threaded o vettoriale, o entrambi, in modo da utilizzare contemporaneamente tutte le unità di calcolo dei processori multi-core. (it) La Parallélisation automatique est une étape de la compilation d'un programme qui consiste à transformer un code source écrit pour une machine séquentielle en un exécutable parallélisé pour ordinateur à Symmetric multiprocessing. L'objectif de la parallélisation automatique est de simplifier et de réduire la durée de développement des programmes parallèles, qui sont notablement plus compliqués à écrire que les programmes séquentiels mais permettent des gains de vitesse sur les machines parallèles. (fr) Автоматическое распараллеливание — оптимизация программы компилятором, состоящая в автоматическом её преобразовании в форму, работающую на параллельном компьютере, например, на SMP или NUMA машине. Целью автоматизации распараллеливания является освобождение программиста от трудоемкого и подверженного ошибкам процесса ручного распараллеливания. Несмотря на то, что качество автоматического распараллеливания улучшалось последние годы, полное распараллеливание последовательных программ остается слишком сложной задачей, требующей сложнейших видов анализа программ. (ru) Автоматичне розпаралелювання – це конвертування коду в багатопотоковий, що працює на паралельному комп'ютері (наприклад, на комп'ютері з багатьма процесорами, процесорними ядрами або потоками виконання). Метою автоматизації розпаралелювання є звільнення програміста від трудомісткого процесу ручного розпаралелювання. Незважаючи на те, що якість автоматичного розпаралелювання значно покращилася за останні роки, повне розпаралелювання послідовних програм залишається занадто складним завданням, що вимагає дуже складних видів аналізу програм та ПЗ. (uk)
rdfs:label Automatic parallelization (en) Paralelización automática (es) Parallélisation automatique (fr) Parallelizzazione automatica (it) Автоматическое распараллеливание (ru) Автоматичне розпаралелення (uk)
rdfs:seeAlso dbr:Automatic_parallelization_tool
owl:sameAs freebase:Automatic parallelization yago-res:Automatic parallelization wikidata:Automatic parallelization dbpedia-es:Automatic parallelization dbpedia-fa:Automatic parallelization dbpedia-fr:Automatic parallelization dbpedia-it:Automatic parallelization dbpedia-ru:Automatic parallelization dbpedia-sr:Automatic parallelization dbpedia-uk:Automatic parallelization https://global.dbpedia.org/id/2CJ6L
prov:wasDerivedFrom wikipedia-en:Automatic_parallelization?oldid=1078862061&ns=0
foaf:isPrimaryTopicOf wikipedia-en:Automatic_parallelization
is dbo:wikiPageRedirects of dbr:Parallelizing_compiler dbr:Auto-parallelisation dbr:Auto_parallelisation dbr:Auto_parallelization dbr:Automatic_parallelisation dbr:Autoparallelisation dbr:Auto-parallelization dbr:Automatic_parallelizing dbr:Autoparallelization dbr:Parallelizing dbr:Irregular_algorithm
is dbo:wikiPageWikiLink of dbr:Privatization_(computer_programming) dbr:List_of_compilers dbr:DOPIPE dbr:Dependence_analysis dbr:Scalable_parallelism dbr:Compiler dbr:General-purpose_computing_on_graphics_processing_units dbr:GCD_test dbr:GNU_Compiler_Collection dbr:GPI-Space dbr:Google_JAX dbr:The_Portland_Group dbr:Array-access_analysis dbr:Computer_cluster dbr:Parallel_algorithm dbr:Parallel_computing dbr:UPCRC_Illinois dbr:Normalized_loop dbr:Parallelizing_compiler dbr:Intrinsic_function dbr:Automatic_parallelization_tool dbr:Automatic_vectorization dbr:OpenMP dbr:Optimizing_compiler dbr:Oracle_Developer_Studio dbr:Auto-parallelisation dbr:Auto_parallelisation dbr:Auto_parallelization dbr:Automatic_parallelisation dbr:Autoparallelisation dbr:ROSE_(compiler_framework) dbr:SequenceL dbr:Loop_dependence_analysis dbr:Loop_optimization dbr:Loop_scheduling dbr:Loop_unswitching dbr:Visual_programming_language dbr:Parallel_programming_model dbr:Auto-parallelization dbr:Automatic_parallelizing dbr:Autoparallelization dbr:Parallelizing dbr:Irregular_algorithm
is foaf:primaryTopic of wikipedia-en:Automatic_parallelization