Участник:VolkovNikita94: различия между версиями

Материал из Алговики
Перейти к навигации Перейти к поиску
м
(Исправление описания примеров визуализации. Добавлены XML файлы и исходники. Часть XML-файлов не откорректирована, части исходников не хват.)
Строка 1: Строка 1:
<center>
 
 
<tabs>
 
<tabs>
  
Строка 10: Строка 9:
 
}}
 
}}
 
<br>
 
<br>
<center>
+
Чисто последовательная структура в 2D-представлении (последовательное суммирование)
Чисто последовательная структура в 2D-представлении
+
<source lang = "c++">
</center>
+
int seqSum(const std::vector<int>& _src)
 +
{
 +
  int resSum = 0;
 +
  for (int srcId = 0; srcId < _src.size(); ++srcId)
 +
  {
 +
      resSum += _src[srcId];
 +
  }
 +
  return resSum;
 +
}
 +
</source>
 +
<source lang = "xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<algograph version="0.0.1">
 +
  <algorithm num_ext_params="1" num_groups="2">
 +
      <ext_param name="n"/>
 +
      <group id="0" num_or_parts="1" num_oper="1">
 +
        <or_part id="0" num_and_parts="1">
 +
            <and_part id="0"><![CDATA[]]></and_part>
 +
            <statement id="0" num_inputs="1">
 +
              <input id="0" num_solutions="0"/>
 +
            </statement>
 +
        </or_part>
 +
      </group>
 +
      <loop>
 +
        <loop>
 +
            <group id="1" num_or_parts="1" num_oper="1">
 +
              <or_part id="0" num_and_parts="4">
 +
                  <and_part id="0"><![CDATA[-i1<=-1]]></and_part>
 +
                  <and_part id="1"><![CDATA[i1<=n]]></and_part>
 +
                  <and_part id="2"><![CDATA[-i2<=-1]]></and_part>
 +
                  <and_part id="3"><![CDATA[i2<=n]]></and_part>
 +
                  <statement id="0" num_inputs="3">
 +
                    <input id="0" num_solutions="0"/>
 +
                    <input id="1" num_solutions="3">
 +
                        <solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
                          <altarea num_conditions="5">
 +
                              <condition><![CDATA[i2-n<=0]]></condition>
 +
                              <condition><![CDATA[-n+2<=0]]></condition>
 +
                              <condition><![CDATA[i1-n<=0]]></condition>
 +
                              <condition><![CDATA[-i1+1<=0]]></condition>
 +
                              <condition><![CDATA[-i2+2<=0]]></condition>
 +
                          </altarea>
 +
                          <dependency>
 +
                              <coordinate><![CDATA[i1]]></coordinate>
 +
                              <coordinate><![CDATA[i2-1]]></coordinate>
 +
                          </dependency>
 +
                        </solution>
 +
                        <solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
                          <altarea num_conditions="5">
 +
                              <condition><![CDATA[-i2+1<=0]]></condition>
 +
                              <condition><![CDATA[-n+2<=0]]></condition>
 +
                              <condition><![CDATA[i1-n<=0]]></condition>
 +
                              <condition><![CDATA[-i1+2<=0]]></condition>
 +
                              <condition><![CDATA[i2-1<=0]]></condition>
 +
                          </altarea>
 +
                          <dependency>
 +
                              <coordinate><![CDATA[i1-1]]></coordinate>
 +
                              <coordinate><![CDATA[n]]></coordinate>
 +
                          </dependency>
 +
                        </solution>
 +
                        <solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
 +
                          <altarea num_conditions="5">
 +
                              <condition><![CDATA[-n+1<=0]]></condition>
 +
                              <condition><![CDATA[-i2+1<=0]]></condition>
 +
                              <condition><![CDATA[-i1+1<=0]]></condition>
 +
                              <condition><![CDATA[i2-1<=0]]></condition>
 +
                              <condition><![CDATA[i1-1<=0]]></condition>
 +
                          </altarea>
 +
                      </solution>
 +
                    </input>
 +
                    <input id="2" num_solutions="0"/>
 +
                  </statement>
 +
              </or_part>
 +
            </group>
 +
        </loop>
 +
      </loop>
 +
  </algorithm>
 +
</algograph>
 +
</source>
 
</tab>
 
</tab>
  
Строка 23: Строка 100:
 
}}
 
}}
 
<br>
 
<br>
<center>
+
Набор одномерных последовательных структур, независимых между собой - 2D вариант
Набор одномерных последовательных структур, независимых между собой
+
<source lang = "c++">
</center>
+
void seqParSum(const std::vector<std::vector<int> >& _src, std::vector<int>& _res)
 +
{
 +
  if (_src.size() != _res.size())
 +
      return;
 +
 
 +
  for (int srcGrpId = 0; srcGrpId < _src.size(); ++srcGrpId)
 +
  {
 +
      for (int srcElId = 0; srcElId < _src[srcGrpId].size(); ++srcElId )
 +
      {
 +
        _res[srcGrpId] += _src[srcGrpId][srcElId];
 +
      }
 +
  }
 +
  return;
 +
}
 +
</source>
 +
<source lang = "xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<algograph version="0.0.1">
 +
  <algorithm num_ext_params="1" num_groups="2">
 +
      <ext_param name="n"/>
 +
      <group id="0" num_or_parts="1" num_oper="1">
 +
        <or_part id="0" num_and_parts="1">
 +
            <and_part id="0"><![CDATA[]]></and_part>
 +
            <statement id="0" num_inputs="1">
 +
              <input id="0" num_solutions="0"/>
 +
            </statement>
 +
        </or_part>
 +
      </group>
 +
      <loop>
 +
        <loop>
 +
            <group id="1" num_or_parts="1" num_oper="1">
 +
              <or_part id="0" num_and_parts="4">
 +
                  <and_part id="0"><![CDATA[-i1<=-1]]></and_part>
 +
                  <and_part id="1"><![CDATA[i1<=n]]></and_part>
 +
                  <and_part id="2"><![CDATA[-i2<=-1]]></and_part>
 +
                  <and_part id="3"><![CDATA[i2<=n]]></and_part>
 +
                  <statement id="0" num_inputs="3">
 +
                    <input id="0" num_solutions="0"/>
 +
                    <input id="1" num_solutions="3">
 +
                        <solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
                          <altarea num_conditions="5">
 +
                              <condition><![CDATA[i2-n<=0]]></condition>
 +
                              <condition><![CDATA[-n+2<=0]]></condition>
 +
                              <condition><![CDATA[i1-n<=0]]></condition>
 +
                              <condition><![CDATA[-i1+1<=0]]></condition>
 +
                              <condition><![CDATA[-i2+2<=0]]></condition>
 +
                          </altarea>
 +
                          <dependency>
 +
                              <coordinate><![CDATA[i1]]></coordinate>
 +
                              <coordinate><![CDATA[i2-1]]></coordinate>
 +
                          </dependency>
 +
                        </solution>
 +
                        <solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="0">
 +
                          <altarea num_conditions="5">
 +
                              <condition><![CDATA[-i2+1<=0]]></condition>
 +
                              <condition><![CDATA[-n+2<=0]]></condition>
 +
                              <condition><![CDATA[i1-n<=0]]></condition>
 +
                              <condition><![CDATA[-i1+2<=0]]></condition>
 +
                              <condition><![CDATA[i2-1<=0]]></condition>
 +
                          </altarea>
 +
                        </solution>
 +
                        <solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
 +
                          <altarea num_conditions="5">
 +
                              <condition><![CDATA[-n+1<=0]]></condition>
 +
                              <condition><![CDATA[-i2+1<=0]]></condition>
 +
                              <condition><![CDATA[-i1+1<=0]]></condition>
 +
                              <condition><![CDATA[i2-1<=0]]></condition>
 +
                              <condition><![CDATA[i1-1<=0]]></condition>
 +
                          </altarea>
 +
                        </solution>
 +
                    </input>
 +
                    <input id="2" num_solutions="0"/>
 +
                  </statement>
 +
              </or_part>
 +
            </group>
 +
        </loop>
 +
      </loop>
 +
  </algorithm>
 +
</algograph>
 +
</source>
 
</tab>
 
</tab>
  
Строка 36: Строка 192:
 
}}
 
}}
 
<br>
 
<br>
<center>
 
 
Двумерная структура со скошенным параллелизмом
 
Двумерная структура со скошенным параллелизмом
</center>
+
<source lang = "xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<algograph version="0.0.1">
 +
<algorithm num_ext_params="1" num_groups="2">
 +
<ext_param name="n"/>
 +
<group id="0" num_or_parts="1" num_oper="1">
 +
<or_part id="0" num_and_parts="1">
 +
<and_part id="0"><![CDATA[]]></and_part>
 +
<statement id="0" num_inputs="1">
 +
<input id="0" num_solutions="0"/>
 +
</statement>
 +
</or_part>
 +
</group>
 +
<loop>
 +
<loop>
 +
<group id="1" num_or_parts="1" num_oper="1">
 +
<or_part id="0" num_and_parts="4">
 +
<and_part id="0"><![CDATA[-i1<=-1]]></and_part>
 +
<and_part id="1"><![CDATA[i1<=n]]></and_part>
 +
<and_part id="2"><![CDATA[-i2<=-1]]></and_part>
 +
<and_part id="3"><![CDATA[i2<=n]]></and_part>
 +
<statement id="0" num_inputs="3">
 +
<input id="0" num_solutions="0"/>
 +
<input id="1" num_solutions="3">
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[i2-n<=0]]></condition>
 +
<condition><![CDATA[-n+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[-i2+2<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[i1]]></coordinate>
 +
<coordinate><![CDATA[i2-1]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[i2-n<=0]]></condition>
 +
<condition><![CDATA[-n+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[-i1+2<=0]]></condition>
 +
<condition><![CDATA[-i2+1<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[i1-1]]></coordinate>
 +
<coordinate><![CDATA[i2]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[-n+1<=0]]></condition>
 +
<condition><![CDATA[-i2+1<=0]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[i2-1<=0]]></condition>
 +
<condition><![CDATA[i1-1<=0]]></condition>
 +
</altarea>
 +
</solution>
 +
</input>
 +
<input id="2" num_solutions="0"/>
 +
</statement>
 +
</or_part>
 +
</group>
 +
</loop>
 +
</loop>
 +
</algorithm>
 +
</algograph>
 +
</source>
 
</tab>
 
</tab>
  
Строка 49: Строка 272:
 
}}
 
}}
 
<br>
 
<br>
<center>
 
 
Двумерная структура со скошенным параллелизмом и скошенной передачей данных
 
Двумерная структура со скошенным параллелизмом и скошенной передачей данных
</center>
+
<source lang = "xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<algograph version="0.0.1">
 +
<algorithm num_ext_params="1" num_groups="2">
 +
<ext_param name="n"/>
 +
<group id="0" num_or_parts="1" num_oper="1">
 +
<or_part id="0" num_and_parts="1">
 +
<and_part id="0"><![CDATA[]]></and_part>
 +
<statement id="0" num_inputs="1">
 +
<input id="0" num_solutions="0"/>
 +
</statement>
 +
</or_part>
 +
</group>
 +
<loop>
 +
<loop>
 +
<group id="1" num_or_parts="1" num_oper="1">
 +
<or_part id="0" num_and_parts="4">
 +
<and_part id="0"><![CDATA[-i1<=-1]]></and_part>
 +
<and_part id="1"><![CDATA[i1<=n]]></and_part>
 +
<and_part id="2"><![CDATA[-i2<=-1]]></and_part>
 +
<and_part id="3"><![CDATA[i2<=n]]></and_part>
 +
<statement id="0" num_inputs="3">
 +
<input id="0" num_solutions="0"/>
 +
<input id="1" num_solutions="3">
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[i2-n<=0]]></condition>
 +
<condition><![CDATA[-n+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[-i2+2<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[i1]]></coordinate>
 +
<coordinate><![CDATA[i2-1]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[i2-n<=0]]></condition>
 +
<condition><![CDATA[-n+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[-i1+3<=0]]></condition>
 +
<condition><![CDATA[-i2+2<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[i1-2]]></coordinate>
 +
<coordinate><![CDATA[i2-1]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[-n+1<=0]]></condition>
 +
<condition><![CDATA[-i2+1<=0]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[i2-1<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
</altarea>
 +
</solution>
 +
</input>
 +
<input id="2" num_solutions="0"/>
 +
</statement>
 +
</or_part>
 +
</group>
 +
</loop>
 +
</loop>
 +
</algorithm>
 +
</algograph>
 +
</source>
 
</tab>
 
</tab>
  
Строка 62: Строка 352:
 
}}
 
}}
 
<br>
 
<br>
<center>
 
 
Двумерная структура с квадратным параллелизмом и массовыми рассылками по каждому измерению
 
Двумерная структура с квадратным параллелизмом и массовыми рассылками по каждому измерению
</center>
+
<source lang = "xml">
 +
<?xml version="1.0" encoding="UTF-8"?>
 +
<algograph version="0.0.1">
 +
<algorithm num_ext_params="1" num_groups="2">
 +
<ext_param name="n"/>
 +
<group id="0" num_or_parts="1" num_oper="1">
 +
<or_part id="0" num_and_parts="1">
 +
<and_part id="0"><![CDATA[]]></and_part>
 +
<statement id="0" num_inputs="1">
 +
<input id="0" num_solutions="0"/>
 +
</statement>
 +
</or_part>
 +
</group>
 +
<loop>
 +
<loop>
 +
<group id="1" num_or_parts="1" num_oper="1">
 +
<or_part id="0" num_and_parts="4">
 +
<and_part id="0"><![CDATA[-i1<=-1]]></and_part>
 +
<and_part id="1"><![CDATA[i1<=n]]></and_part>
 +
<and_part id="2"><![CDATA[-i2<=-1]]></and_part>
 +
<and_part id="3"><![CDATA[i2<=n]]></and_part>
 +
<statement id="0" num_inputs="3">
 +
<input id="0" num_solutions="0"/>
 +
<input id="1" num_solutions="5">
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[i2-n<=0]]></condition>
 +
<condition><![CDATA[-n+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[-i2+2<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[i1]]></coordinate>
 +
<coordinate><![CDATA[i2-1]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[i2-n<=0]]></condition>
 +
<condition><![CDATA[-n+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[-i2+1<=0]]></condition>
 +
<condition><![CDATA[-i1+2<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[i1-1]]></coordinate>
 +
<coordinate><![CDATA[i2]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[i2-n<=0]]></condition>
 +
<condition><![CDATA[-n+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[-i2+3<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[i1]]></coordinate>
 +
<coordinate><![CDATA[1]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[i2-n<=0]]></condition>
 +
<condition><![CDATA[-n+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[-i2+1<=0]]></condition>
 +
<condition><![CDATA[-i1+3<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[1]]></coordinate>
 +
<coordinate><![CDATA[i2]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
 +
<altarea num_conditions="5">
 +
<condition><![CDATA[-n+1<=0]]></condition>
 +
<condition><![CDATA[-i2+1<=0]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[i2-1<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
</altarea>
 +
</solution>
 +
</input>
 +
<input id="2" num_solutions="0"/>
 +
</statement>
 +
</or_part>
 +
</group>
 +
</loop>
 +
</loop>
 +
</algorithm>
 +
</algograph>
 +
</source>
 
</tab>
 
</tab>
  
Строка 75: Строка 458:
 
}}
 
}}
 
<br>
 
<br>
<center>
+
Набор независимых последовательно-параллельных 2D-структур с массовой рассылкой данных в каждой
Чисто последовательная структура в 2D-представлении
+
<source lang = "xml">
</center>
+
<?xml version="1.0" encoding="UTF-8"?>
 +
<algograph version="0.0.1">
 +
<algorithm num_ext_params="2" num_groups="2">
 +
<ext_param name="n"/>
 +
<ext_param name="m"/>
 +
<group id="0" num_or_parts="1" num_oper="1">
 +
<or_part id="0" num_and_parts="1">
 +
<and_part id="0"><![CDATA[]]></and_part>
 +
<statement id="0" num_inputs="1">
 +
<input id="0" num_solutions="0"/>
 +
</statement>
 +
</or_part>
 +
</group>
 +
<loop>
 +
<loop>
 +
<loop>
 +
<group id="1" num_or_parts="1" num_oper="1">
 +
<or_part id="0" num_and_parts="6">
 +
<and_part id="0"><![CDATA[-i1<=-1]]></and_part>
 +
<and_part id="1"><![CDATA[i1<=n]]></and_part>
 +
<and_part id="2"><![CDATA[-i2<=-1]]></and_part>
 +
<and_part id="3"><![CDATA[i2<=m]]></and_part>
 +
<and_part id="4"><![CDATA[i3>=0]]></and_part>
 +
<and_part id="5"><![CDATA[i3<=n-1]]></and_part>
 +
<statement id="0" num_inputs="3">
 +
<input id="0" num_solutions="0"/>
 +
<input id="1" num_solutions="3">
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="3">
 +
<altarea num_conditions="7">
 +
<condition><![CDATA[-m+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[i3-n+1<=0]]></condition>
 +
<condition><![CDATA[-i2+2<=0]]></condition>
 +
<condition><![CDATA[i2<=m]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[-i3<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[i1]]></coordinate>
 +
<coordinate><![CDATA[i2-1]]></coordinate>
 +
<coordinate><![CDATA[i3]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="3">
 +
<altarea num_conditions="7">
 +
<condition><![CDATA[-m+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[i3-n+1<=0]]></condition>
 +
<condition><![CDATA[-i2+2<=0]]></condition>
 +
<condition><![CDATA[i2<=m]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[-i3<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[1]]></coordinate>
 +
<coordinate><![CDATA[i2-1]]></coordinate>
 +
<coordinate><![CDATA[i3]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
 +
<altarea num_conditions="6">
 +
<condition><![CDATA[i2-1<=0]]></condition>
 +
<condition><![CDATA[i2-1>=0]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[-i3<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[i3-n+1<=0]]></condition>
 +
</altarea>
 +
</solution>
 +
</input>
 +
<input id="2" num_solutions="0"/>
 +
</statement>
 +
</or_part>
 +
</group>
 +
</loop>
 +
</loop>
 +
</loop>
 +
</algorithm>
 +
</algograph>
 +
</source>
 
</tab>
 
</tab>
  
Строка 88: Строка 550:
 
}}
 
}}
 
<br>
 
<br>
<center>
+
Набор одномерных последовательных структур, независимых между собой - 3D вариант
Чисто последовательная структура в 2D-представлении
+
<source lang = "xml">
</center>
+
<?xml version="1.0" encoding="UTF-8"?>
 +
<algograph version="0.0.1">
 +
<algorithm num_ext_params="2" num_groups="2">
 +
<ext_param name="n"/>
 +
<ext_param name="m"/>
 +
<group id="0" num_or_parts="1" num_oper="1">
 +
<or_part id="0" num_and_parts="1">
 +
<and_part id="0"><![CDATA[]]></and_part>
 +
<statement id="0" num_inputs="1">
 +
<input id="0" num_solutions="0"/>
 +
</statement>
 +
</or_part>
 +
</group>
 +
<loop>
 +
<loop>
 +
<loop>
 +
<group id="1" num_or_parts="1" num_oper="1">
 +
<or_part id="0" num_and_parts="6">
 +
<and_part id="0"><![CDATA[-i1<=-1]]></and_part>
 +
<and_part id="1"><![CDATA[i1<=n]]></and_part>
 +
<and_part id="2"><![CDATA[-i2<=-1]]></and_part>
 +
<and_part id="3"><![CDATA[i2<=m]]></and_part>
 +
<and_part id="4"><![CDATA[i3>=0]]></and_part>
 +
<and_part id="5"><![CDATA[i3<=n-1]]></and_part>
 +
<statement id="0" num_inputs="3">
 +
<input id="0" num_solutions="0"/>
 +
<input id="1" num_solutions="2">
 +
<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="3">
 +
<altarea num_conditions="7">
 +
<condition><![CDATA[-m+2<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[i3-n+1<=0]]></condition>
 +
<condition><![CDATA[-i2+1<=0]]></condition>
 +
<condition><![CDATA[i2+1<=m]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[-i3<=0]]></condition>
 +
</altarea>
 +
<dependency>
 +
<coordinate><![CDATA[i1]]></coordinate>
 +
<coordinate><![CDATA[i2+1]]></coordinate>
 +
<coordinate><![CDATA[i3]]></coordinate>
 +
</dependency>
 +
</solution>
 +
<solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
 +
<altarea num_conditions="6">
 +
<condition><![CDATA[i2-m<=0]]></condition>
 +
<condition><![CDATA[i2-m>=0]]></condition>
 +
<condition><![CDATA[-i1+1<=0]]></condition>
 +
<condition><![CDATA[-i3<=0]]></condition>
 +
<condition><![CDATA[i1-n<=0]]></condition>
 +
<condition><![CDATA[i3-n+1<=0]]></condition>
 +
</altarea>
 +
</solution>
 +
</input>
 +
<input id="2" num_solutions="0"/>
 +
</statement>
 +
</or_part>
 +
</group>
 +
</loop>
 +
</loop>
 +
</loop>
 +
</algorithm>
 +
</algograph>
 +
</source>
 
</tab>
 
</tab>
  
Строка 101: Строка 626:
 
}}
 
}}
 
<br>
 
<br>
<center>
+
Пример массовой рассылки данных в 2D-структуре
Чисто последовательная структура в 2D-представлении
 
</center>
 
 
</tab>
 
</tab>
  
Строка 114: Строка 637:
 
}}
 
}}
 
<br>
 
<br>
<center>
+
Искуственный пример, демонстрирующий элементы визуализации
Чисто последовательная структура в 2D-представлении
 
</center>
 
 
</tab>
 
</tab>
  
Строка 127: Строка 648:
 
}}
 
}}
 
<br>
 
<br>
<center>
+
Последовательный набор 3D-структур, содержащих скошенный параллелизм
Чисто последовательная структура в 2D-представлении
 
</center>
 
 
</tab>
 
</tab>
  
Строка 140: Строка 659:
 
}}
 
}}
 
<br>
 
<br>
<center>
+
Пример массовой рассылки данных в 3D-структуре
Чисто последовательная структура в 2D-представлении
 
</center>
 
 
</tab>
 
</tab>
  
Строка 153: Строка 670:
 
}}
 
}}
 
<br>
 
<br>
<center>
+
Пример 3D-структуры с различными видами скошенного параллелизма
Чисто последовательная структура в 2D-представлении
 
</center>
 
 
</tab>
 
</tab>
  
Строка 166: Строка 681:
 
}}
 
}}
 
<br>
 
<br>
<center>
+
Последовательно-параллельное перемножение матриц
Чисто последовательная структура в 2D-представлении
 
</center>
 
 
</tab>
 
</tab>
  
 
</tabs>
 
</tabs>
</center>
 
 
<math>(x, y, z)  ->  (0, 0, \sqrt{(x^2 + y^2 + z^2)})</math>
 

Версия 22:25, 17 апреля 2019


Чисто последовательная структура в 2D-представлении (последовательное суммирование)

int seqSum(const std::vector<int>& _src)
{
   int resSum = 0;
   for (int srcId = 0; srcId < _src.size(); ++srcId)
   {
      resSum += _src[srcId];
   }
   return resSum;
}
<?xml version="1.0" encoding="UTF-8"?>
<algograph version="0.0.1">
   <algorithm num_ext_params="1" num_groups="2">
      <ext_param name="n"/>
      <group id="0" num_or_parts="1" num_oper="1">
         <or_part id="0" num_and_parts="1">
            <and_part id="0"><![CDATA[]]></and_part>
            <statement id="0" num_inputs="1">
               <input id="0" num_solutions="0"/>
            </statement>
         </or_part>
      </group>
      <loop>
         <loop>
            <group id="1" num_or_parts="1" num_oper="1">
               <or_part id="0" num_and_parts="4">
                  <and_part id="0"><![CDATA[-i1<=-1]]></and_part>
                  <and_part id="1"><![CDATA[i1<=n]]></and_part>
                  <and_part id="2"><![CDATA[-i2<=-1]]></and_part>
                  <and_part id="3"><![CDATA[i2<=n]]></and_part>
                  <statement id="0" num_inputs="3">
                     <input id="0" num_solutions="0"/>
                     <input id="1" num_solutions="3">
                        <solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
                           <altarea num_conditions="5">
                              <condition><![CDATA[i2-n<=0]]></condition>
                              <condition><![CDATA[-n+2<=0]]></condition>
                              <condition><![CDATA[i1-n<=0]]></condition>
                              <condition><![CDATA[-i1+1<=0]]></condition>
                              <condition><![CDATA[-i2+2<=0]]></condition>
                           </altarea>
                           <dependency>
                              <coordinate><![CDATA[i1]]></coordinate>
                              <coordinate><![CDATA[i2-1]]></coordinate>
                           </dependency>
                        </solution>
                        <solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
                           <altarea num_conditions="5">
                              <condition><![CDATA[-i2+1<=0]]></condition>
                              <condition><![CDATA[-n+2<=0]]></condition>
                              <condition><![CDATA[i1-n<=0]]></condition>
                              <condition><![CDATA[-i1+2<=0]]></condition>
                              <condition><![CDATA[i2-1<=0]]></condition>
                           </altarea>
                           <dependency>
                              <coordinate><![CDATA[i1-1]]></coordinate>
                              <coordinate><![CDATA[n]]></coordinate>
                           </dependency>
                        </solution>
                        <solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
                           <altarea num_conditions="5">
                              <condition><![CDATA[-n+1<=0]]></condition>
                              <condition><![CDATA[-i2+1<=0]]></condition>
                              <condition><![CDATA[-i1+1<=0]]></condition>
                              <condition><![CDATA[i2-1<=0]]></condition>
                              <condition><![CDATA[i1-1<=0]]></condition>
                           </altarea>
                       </solution>
                     </input>
                     <input id="2" num_solutions="0"/>
                  </statement>
               </or_part>
            </group>
         </loop>
      </loop>
   </algorithm>
</algograph>


Набор одномерных последовательных структур, независимых между собой - 2D вариант

void seqParSum(const std::vector<std::vector<int> >& _src, std::vector<int>& _res)
{
   if (_src.size() != _res.size())
      return;

   for (int srcGrpId = 0; srcGrpId < _src.size(); ++srcGrpId)
   {
      for (int srcElId = 0; srcElId < _src[srcGrpId].size(); ++srcElId )
      {
         _res[srcGrpId] += _src[srcGrpId][srcElId];
      }
   }
   return;
}
<?xml version="1.0" encoding="UTF-8"?>
<algograph version="0.0.1">
   <algorithm num_ext_params="1" num_groups="2">
      <ext_param name="n"/>
      <group id="0" num_or_parts="1" num_oper="1">
         <or_part id="0" num_and_parts="1">
            <and_part id="0"><![CDATA[]]></and_part>
            <statement id="0" num_inputs="1">
               <input id="0" num_solutions="0"/>
            </statement>
         </or_part>
      </group>
      <loop>
         <loop>
            <group id="1" num_or_parts="1" num_oper="1">
               <or_part id="0" num_and_parts="4">
                  <and_part id="0"><![CDATA[-i1<=-1]]></and_part>
                  <and_part id="1"><![CDATA[i1<=n]]></and_part>
                  <and_part id="2"><![CDATA[-i2<=-1]]></and_part>
                  <and_part id="3"><![CDATA[i2<=n]]></and_part>
                  <statement id="0" num_inputs="3">
                     <input id="0" num_solutions="0"/>
                     <input id="1" num_solutions="3">
                        <solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
                           <altarea num_conditions="5">
                              <condition><![CDATA[i2-n<=0]]></condition>
                              <condition><![CDATA[-n+2<=0]]></condition>
                              <condition><![CDATA[i1-n<=0]]></condition>
                              <condition><![CDATA[-i1+1<=0]]></condition>
                              <condition><![CDATA[-i2+2<=0]]></condition>
                           </altarea>
                           <dependency>
                              <coordinate><![CDATA[i1]]></coordinate>
                              <coordinate><![CDATA[i2-1]]></coordinate>
                           </dependency>
                        </solution>
                        <solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="0">
                           <altarea num_conditions="5">
                              <condition><![CDATA[-i2+1<=0]]></condition>
                              <condition><![CDATA[-n+2<=0]]></condition>
                              <condition><![CDATA[i1-n<=0]]></condition>
                              <condition><![CDATA[-i1+2<=0]]></condition>
                              <condition><![CDATA[i2-1<=0]]></condition>
                           </altarea>
                        </solution>
                        <solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
                           <altarea num_conditions="5">
                              <condition><![CDATA[-n+1<=0]]></condition>
                              <condition><![CDATA[-i2+1<=0]]></condition>
                              <condition><![CDATA[-i1+1<=0]]></condition>
                              <condition><![CDATA[i2-1<=0]]></condition>
                              <condition><![CDATA[i1-1<=0]]></condition>
                           </altarea>
                        </solution>
                     </input>
                     <input id="2" num_solutions="0"/>
                  </statement>
               </or_part>
            </group>
         </loop>
      </loop>
   </algorithm>
</algograph>


Двумерная структура со скошенным параллелизмом

<?xml version="1.0" encoding="UTF-8"?>
<algograph version="0.0.1">
	<algorithm num_ext_params="1" num_groups="2">
		<ext_param name="n"/>
		<group id="0" num_or_parts="1" num_oper="1">
			<or_part id="0" num_and_parts="1">
				<and_part id="0"><![CDATA[]]></and_part>
				<statement id="0" num_inputs="1">
					<input id="0" num_solutions="0"/>
				</statement>
			</or_part>
		</group>
		<loop>
			<loop>
				<group id="1" num_or_parts="1" num_oper="1">
					<or_part id="0" num_and_parts="4">
						<and_part id="0"><![CDATA[-i1<=-1]]></and_part>
						<and_part id="1"><![CDATA[i1<=n]]></and_part>
						<and_part id="2"><![CDATA[-i2<=-1]]></and_part>
						<and_part id="3"><![CDATA[i2<=n]]></and_part>
						<statement id="0" num_inputs="3">
							<input id="0" num_solutions="0"/>
							<input id="1" num_solutions="3">
								<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
									<altarea num_conditions="5">
										<condition><![CDATA[i2-n<=0]]></condition>
										<condition><![CDATA[-n+2<=0]]></condition>
										<condition><![CDATA[i1-n<=0]]></condition>
										<condition><![CDATA[-i1+1<=0]]></condition>
										<condition><![CDATA[-i2+2<=0]]></condition>
									</altarea>
									<dependency>
										<coordinate><![CDATA[i1]]></coordinate>
										<coordinate><![CDATA[i2-1]]></coordinate>
									</dependency>
								</solution>
								<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
									<altarea num_conditions="5">
										<condition><![CDATA[i2-n<=0]]></condition>
										<condition><![CDATA[-n+2<=0]]></condition>
										<condition><![CDATA[i1-n<=0]]></condition>
										<condition><![CDATA[-i1+2<=0]]></condition>
										<condition><![CDATA[-i2+1<=0]]></condition>
									</altarea>
									<dependency>
										<coordinate><![CDATA[i1-1]]></coordinate>
										<coordinate><![CDATA[i2]]></coordinate>
									</dependency>
								</solution>
								<solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
									<altarea num_conditions="5">
										<condition><![CDATA[-n+1<=0]]></condition>
										<condition><![CDATA[-i2+1<=0]]></condition>
										<condition><![CDATA[-i1+1<=0]]></condition>
										<condition><![CDATA[i2-1<=0]]></condition>
										<condition><![CDATA[i1-1<=0]]></condition>
									</altarea>
								</solution>
							</input>
							<input id="2" num_solutions="0"/>
						</statement>
					</or_part>
				</group>
			</loop>
		</loop>
	</algorithm>
</algograph>


Двумерная структура со скошенным параллелизмом и скошенной передачей данных

<?xml version="1.0" encoding="UTF-8"?>
<algograph version="0.0.1">
	<algorithm num_ext_params="1" num_groups="2">
		<ext_param name="n"/>
		<group id="0" num_or_parts="1" num_oper="1">
			<or_part id="0" num_and_parts="1">
				<and_part id="0"><![CDATA[]]></and_part>
				<statement id="0" num_inputs="1">
					<input id="0" num_solutions="0"/>
				</statement>
			</or_part>
		</group>
		<loop>
			<loop>
				<group id="1" num_or_parts="1" num_oper="1">
					<or_part id="0" num_and_parts="4">
						<and_part id="0"><![CDATA[-i1<=-1]]></and_part>
						<and_part id="1"><![CDATA[i1<=n]]></and_part>
						<and_part id="2"><![CDATA[-i2<=-1]]></and_part>
						<and_part id="3"><![CDATA[i2<=n]]></and_part>
						<statement id="0" num_inputs="3">
							<input id="0" num_solutions="0"/>
							<input id="1" num_solutions="3">
								<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
									<altarea num_conditions="5">
										<condition><![CDATA[i2-n<=0]]></condition>
										<condition><![CDATA[-n+2<=0]]></condition>
										<condition><![CDATA[i1-n<=0]]></condition>
										<condition><![CDATA[-i1+1<=0]]></condition>
										<condition><![CDATA[-i2+2<=0]]></condition>
									</altarea>
									<dependency>
										<coordinate><![CDATA[i1]]></coordinate>
										<coordinate><![CDATA[i2-1]]></coordinate>
									</dependency>
								</solution>
								<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
									<altarea num_conditions="5">
										<condition><![CDATA[i2-n<=0]]></condition>
										<condition><![CDATA[-n+2<=0]]></condition>
										<condition><![CDATA[i1-n<=0]]></condition>
										<condition><![CDATA[-i1+3<=0]]></condition>
										<condition><![CDATA[-i2+2<=0]]></condition>
									</altarea>
									<dependency>
										<coordinate><![CDATA[i1-2]]></coordinate>
										<coordinate><![CDATA[i2-1]]></coordinate>
									</dependency>
								</solution>
								<solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
									<altarea num_conditions="5">
										<condition><![CDATA[-n+1<=0]]></condition>
										<condition><![CDATA[-i2+1<=0]]></condition>
										<condition><![CDATA[-i1+1<=0]]></condition>
										<condition><![CDATA[i2-1<=0]]></condition>
										<condition><![CDATA[i1-n<=0]]></condition>
									</altarea>
								</solution>
							</input>
							<input id="2" num_solutions="0"/>
						</statement>
					</or_part>
				</group>
			</loop>
		</loop>
	</algorithm>
</algograph>


Двумерная структура с квадратным параллелизмом и массовыми рассылками по каждому измерению

<?xml version="1.0" encoding="UTF-8"?>
<algograph version="0.0.1">
	<algorithm num_ext_params="1" num_groups="2">
		<ext_param name="n"/>
		<group id="0" num_or_parts="1" num_oper="1">
			<or_part id="0" num_and_parts="1">
				<and_part id="0"><![CDATA[]]></and_part>
				<statement id="0" num_inputs="1">
					<input id="0" num_solutions="0"/>
				</statement>
			</or_part>
		</group>
		<loop>
			<loop>
				<group id="1" num_or_parts="1" num_oper="1">
					<or_part id="0" num_and_parts="4">
						<and_part id="0"><![CDATA[-i1<=-1]]></and_part>
						<and_part id="1"><![CDATA[i1<=n]]></and_part>
						<and_part id="2"><![CDATA[-i2<=-1]]></and_part>
						<and_part id="3"><![CDATA[i2<=n]]></and_part>
						<statement id="0" num_inputs="3">
							<input id="0" num_solutions="0"/>
							<input id="1" num_solutions="5">
								<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
									<altarea num_conditions="5">
										<condition><![CDATA[i2-n<=0]]></condition>
										<condition><![CDATA[-n+2<=0]]></condition>
										<condition><![CDATA[i1-n<=0]]></condition>
										<condition><![CDATA[-i1+1<=0]]></condition>
										<condition><![CDATA[-i2+2<=0]]></condition>
									</altarea>
									<dependency>
										<coordinate><![CDATA[i1]]></coordinate>
										<coordinate><![CDATA[i2-1]]></coordinate>
									</dependency>
								</solution>
								<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
									<altarea num_conditions="5">
										<condition><![CDATA[i2-n<=0]]></condition>
										<condition><![CDATA[-n+2<=0]]></condition>
										<condition><![CDATA[i1-n<=0]]></condition>
										<condition><![CDATA[-i2+1<=0]]></condition>
										<condition><![CDATA[-i1+2<=0]]></condition>
									</altarea>
									<dependency>
										<coordinate><![CDATA[i1-1]]></coordinate>
										<coordinate><![CDATA[i2]]></coordinate>
									</dependency>
								</solution>
								<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
									<altarea num_conditions="5">
										<condition><![CDATA[i2-n<=0]]></condition>
										<condition><![CDATA[-n+2<=0]]></condition>
										<condition><![CDATA[i1-n<=0]]></condition>
										<condition><![CDATA[-i1+1<=0]]></condition>
										<condition><![CDATA[-i2+3<=0]]></condition>
									</altarea>
									<dependency>
										<coordinate><![CDATA[i1]]></coordinate>
										<coordinate><![CDATA[1]]></coordinate>
									</dependency>
								</solution>
								<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="2">
									<altarea num_conditions="5">
										<condition><![CDATA[i2-n<=0]]></condition>
										<condition><![CDATA[-n+2<=0]]></condition>
										<condition><![CDATA[i1-n<=0]]></condition>
										<condition><![CDATA[-i2+1<=0]]></condition>
										<condition><![CDATA[-i1+3<=0]]></condition>
									</altarea>
									<dependency>
										<coordinate><![CDATA[1]]></coordinate>
										<coordinate><![CDATA[i2]]></coordinate>
									</dependency>
								</solution>
								<solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
									<altarea num_conditions="5">
										<condition><![CDATA[-n+1<=0]]></condition>
										<condition><![CDATA[-i2+1<=0]]></condition>
										<condition><![CDATA[-i1+1<=0]]></condition>
										<condition><![CDATA[i2-1<=0]]></condition>
										<condition><![CDATA[i1-n<=0]]></condition>
									</altarea>
								</solution>
							</input>
							<input id="2" num_solutions="0"/>
						</statement>
					</or_part>
				</group>
			</loop>
		</loop>
	</algorithm>
</algograph>


Набор независимых последовательно-параллельных 2D-структур с массовой рассылкой данных в каждой

<?xml version="1.0" encoding="UTF-8"?>
<algograph version="0.0.1">
	<algorithm num_ext_params="2" num_groups="2">
		<ext_param name="n"/>
		<ext_param name="m"/>
		<group id="0" num_or_parts="1" num_oper="1">
			<or_part id="0" num_and_parts="1">
				<and_part id="0"><![CDATA[]]></and_part>
				<statement id="0" num_inputs="1">
					<input id="0" num_solutions="0"/>
				</statement>
			</or_part>
		</group>
		<loop>
			<loop>
				<loop>
					<group id="1" num_or_parts="1" num_oper="1">
						<or_part id="0" num_and_parts="6">
							<and_part id="0"><![CDATA[-i1<=-1]]></and_part>
							<and_part id="1"><![CDATA[i1<=n]]></and_part>
							<and_part id="2"><![CDATA[-i2<=-1]]></and_part>
							<and_part id="3"><![CDATA[i2<=m]]></and_part>
							<and_part id="4"><![CDATA[i3>=0]]></and_part>
							<and_part id="5"><![CDATA[i3<=n-1]]></and_part>
							<statement id="0" num_inputs="3">
								<input id="0" num_solutions="0"/>
								<input id="1" num_solutions="3">
									<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="3">
										<altarea num_conditions="7">
											<condition><![CDATA[-m+2<=0]]></condition>
											<condition><![CDATA[i1-n<=0]]></condition>
											<condition><![CDATA[i3-n+1<=0]]></condition>
											<condition><![CDATA[-i2+2<=0]]></condition>
											<condition><![CDATA[i2<=m]]></condition>
											<condition><![CDATA[-i1+1<=0]]></condition>
											<condition><![CDATA[-i3<=0]]></condition>
										</altarea>
										<dependency>
											<coordinate><![CDATA[i1]]></coordinate>
											<coordinate><![CDATA[i2-1]]></coordinate>
											<coordinate><![CDATA[i3]]></coordinate>
										</dependency>
									</solution>
									<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="3">
										<altarea num_conditions="7">
											<condition><![CDATA[-m+2<=0]]></condition>
											<condition><![CDATA[i1-n<=0]]></condition>
											<condition><![CDATA[i3-n+1<=0]]></condition>
											<condition><![CDATA[-i2+2<=0]]></condition>
											<condition><![CDATA[i2<=m]]></condition>
											<condition><![CDATA[-i1+1<=0]]></condition>
											<condition><![CDATA[-i3<=0]]></condition>
										</altarea>
										<dependency>
											<coordinate><![CDATA[1]]></coordinate>
											<coordinate><![CDATA[i2-1]]></coordinate>
											<coordinate><![CDATA[i3]]></coordinate>
										</dependency>
									</solution>									
									<solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
										<altarea num_conditions="6">
											<condition><![CDATA[i2-1<=0]]></condition>
											<condition><![CDATA[i2-1>=0]]></condition>
											<condition><![CDATA[-i1+1<=0]]></condition>
											<condition><![CDATA[-i3<=0]]></condition>
											<condition><![CDATA[i1-n<=0]]></condition>
											<condition><![CDATA[i3-n+1<=0]]></condition>
										</altarea>
									</solution>
								</input>
								<input id="2" num_solutions="0"/>
							</statement>
						</or_part>
					</group>
				</loop>
			</loop>
		</loop>
	</algorithm>
</algograph>


Набор одномерных последовательных структур, независимых между собой - 3D вариант

<?xml version="1.0" encoding="UTF-8"?>
<algograph version="0.0.1">
	<algorithm num_ext_params="2" num_groups="2">
		<ext_param name="n"/>
		<ext_param name="m"/>
		<group id="0" num_or_parts="1" num_oper="1">
			<or_part id="0" num_and_parts="1">
				<and_part id="0"><![CDATA[]]></and_part>
				<statement id="0" num_inputs="1">
					<input id="0" num_solutions="0"/>
				</statement>
			</or_part>
		</group>
		<loop>
			<loop>
				<loop>
					<group id="1" num_or_parts="1" num_oper="1">
						<or_part id="0" num_and_parts="6">
							<and_part id="0"><![CDATA[-i1<=-1]]></and_part>
							<and_part id="1"><![CDATA[i1<=n]]></and_part>
							<and_part id="2"><![CDATA[-i2<=-1]]></and_part>
							<and_part id="3"><![CDATA[i2<=m]]></and_part>
							<and_part id="4"><![CDATA[i3>=0]]></and_part>
							<and_part id="5"><![CDATA[i3<=n-1]]></and_part>
							<statement id="0" num_inputs="3">
								<input id="0" num_solutions="0"/>
								<input id="1" num_solutions="2">
									<solution num_altareas="1" group_id="1" or_part_id="0" statement_id="0" dimsolut="3">
										<altarea num_conditions="7">
											<condition><![CDATA[-m+2<=0]]></condition>
											<condition><![CDATA[i1-n<=0]]></condition>
											<condition><![CDATA[i3-n+1<=0]]></condition>
											<condition><![CDATA[-i2+1<=0]]></condition>
											<condition><![CDATA[i2+1<=m]]></condition>
											<condition><![CDATA[-i1+1<=0]]></condition>
											<condition><![CDATA[-i3<=0]]></condition>
										</altarea>
										<dependency>
											<coordinate><![CDATA[i1]]></coordinate>
											<coordinate><![CDATA[i2+1]]></coordinate>
											<coordinate><![CDATA[i3]]></coordinate>
										</dependency>
									</solution>
									<solution num_altareas="1" group_id="0" or_part_id="0" statement_id="0" dimsolut="0">
										<altarea num_conditions="6">
											<condition><![CDATA[i2-m<=0]]></condition>
											<condition><![CDATA[i2-m>=0]]></condition>
											<condition><![CDATA[-i1+1<=0]]></condition>
											<condition><![CDATA[-i3<=0]]></condition>
											<condition><![CDATA[i1-n<=0]]></condition>
											<condition><![CDATA[i3-n+1<=0]]></condition>
										</altarea>
									</solution>
								</input>
								<input id="2" num_solutions="0"/>
							</statement>
						</or_part>
					</group>
				</loop>
			</loop>
		</loop>
	</algorithm>
</algograph>


Пример массовой рассылки данных в 2D-структуре


Искуственный пример, демонстрирующий элементы визуализации


Последовательный набор 3D-структур, содержащих скошенный параллелизм


Пример массовой рассылки данных в 3D-структуре


Пример 3D-структуры с различными видами скошенного параллелизма


Последовательно-параллельное перемножение матриц