Евгений Борисов
21 октября 2000 г.
Возможности наращивания производительности ЭВМ путем
повышения скорости работы процессора в настоящее время
приближаются к пределу и связаны с существенным увеличением
стоимости аппаратуры. Большие возможности и резервы
открываются в использовании многопроцессорных архитектур.
При одинаковой потенциальной производительности система
с большим числом процессоров может обладать большей
гибкостью, допуская различные формы организации вычислительных
процессов. Необходимо отметить, что такие системы требуют
специальных операционных систем.
Многопроцессорные системы могут быть классифицированы в
зависимости оттого, как решаются три основные проблемы,
определяющие их организацию : управление, память и связь.
Связь между процессорами представляет собой наиболее сложную проблему и имеет много решений. Удобно различать универсальные и специальные системы связи.
где
v
0
v
1
p
z
0
z
1
z
0
z
0
z
1
z
1
z
0
z
1
v
0
v
1
p
z
0
p
p
p
z
1
p
r
p
v
0
v
1
(z
0
,...,z
0
)
(z
1
,z
0
,...,z
0
)
(z
0
,...,z
0
)
(z
1
,z
0
,...,z
0
)
(z
1
,z
1
,z
0
,...,z
0
)
(z
0
,...,z
0
)
...
...
...
(z
1
,...,z
1
,z
0
)
(z
1
,...,z
1
)
(z
0
,...,z
0
)
(z
1
,...,z
1
)
(z
0
,...,z
0
)
(z
0
,...,z
0
)
v
0
v
1
(z
0
,...,z
0
)
(v
0
,p,...,p)
(v
1
,...,v
1
)
(z
1
,z
0
,...,z
0
)
(p,v
0
,p,...,p)
(v
1
,...,v
1
)
...
...
...
(z
1
,...,z
1
,z
0
)
(p,...,p,v
0
)
(v
1
,...,v
1
)
(z
1
,...,z
1
)
(v
1
,...,v
1
)
(v
1
,...,v
1
)
Отдаем задание первому свободному вычислительному модулю. Если свободных нет, то ждем освобождения ресурсов (собираем результаты). v 1 на вход - конец работы (собираем результаты).
В этой работе предлагается простая система шифрования данных, которую можно отнести к классу симметричных криптосистем, и ''взломщик'' шифра. Процедура шифрования заключается в сложении по модулю 2 побайтно закрываемого текста и заданного пользователем ключа. Вскрытие кода осуществляется последовательным подбором ключа. Таким образом, количество необходимых для вскрытия итераций равно 2 n , где n - размерность ключа. Например, при n = 24 (трехбуквенный ключ) необходимо произвести 16777216 итераций. Ключ такой длинны был использован при контрольных прогонах программы.
# serv -= crypt sever v.2 =- (c) Borisov E.S. Kiev UA usage: serv <params> params: -p <server port> (default 5041) -w <wordlist file> close ..... ok # serv -w data/test.lex -= crypt sever v.2 =- create ......... ok (port 5041) wordlist 'data/test.lex'-14 words readed accept ..... ok disconnect ........ ok close ......... ok #_
# cl -= crypt client v.2 =- (c) Borisov E.S. Kiev UA usage: cl <params> params: -c <config file> -f <cryptogram file> -k <max key length> disconnect .... ok #_
Одна машина
# cl -k3 -= crypt client v.2 =- ----------- localhost:5041 ----------- create connection (localhost:5041) ... ok disconnect .... ok create connection (localhost:5041) ... ok disconnect .... ok ----------- time = 318 sec. RESULT : key="REX" disconnect .... ok #_
Две машины
# cl -k3 -= crypt client v.2 =- ----------- localhost : 5041 qnx_1 : 5041 ----------- create connection (localhost : 5041) ... ok disconnect .... ok create connection (qnx_1 : 5041) ... ok disconnect .... ok create connection (localhost : 5041) ... ok disconnect .... ok create connection (qnx_1 : 5041) ... ok disconnect .... ok ----------- time = 160 sec. RESULT : key = "REX" disconnect .... ok #_
Число будем вычислять как определенный интеграл :
Согласно правилу прямоугольников интеграл можно заменить суммой:
где h = 1/n ; x i = ( i - 0.5 ) . h
# pi.serv -? -= PI calculation server (TCP) v.1 =- (c) Borisov E.S. Kiev UA usage: pi.serv <params> params: -p <server port number> (def.5041) -w - write more information # pi.serv -= PI calculation server (TCP) v.1 =- create ........ ok (port 5041) accept ........ ok disconnect .... ok close ......... ok #_
# pi.cl -= PI calculation client (TCP) v.1 =- (c) Borisov E.S. Kiev UA usage: pi.cl <params> params: -h <server name> - shutdown server -p <server port number> (def. 5041) -i <size of interval> # pi.cl -h localhost -= PI calculation client (TCP) v.1 =- connect to localhost:5041 ... ok disconnect .................. ok #_
# PI servers localhost: 5041 qnx_1 : 5041
Одна машина
# pi.cl -i20000000 -= PI calculation client (TCP) v.1 =- ------ PI servers -------- qnx_1:5041 -------------------------- connect to qnx_1:5041 ... ok disconnect .............. ok connect to qnx_1:5041 ... ok disconnect .............. ok ------------------------- time = 69 sec. pi=3.141592753589926 #_
Две машины
# pi.cl -i20000000 -= PI calculation client (TCP) v.1 =- ------ PI servers -------- qnx_1:5041 localhost:5041 -------------------------- connect to qnx_1:5041 ....... ok disconnect .................. ok connect to localhost:5041 ... ok disconnect .................. ok connect to qnx_1:5041 ....... ok disconnect .................. ok connect to localhost:5041 ... ok disconnect .................. ok -------------------------- time = 36 sec. pi=3.141592753589926 #_