Вычислительные системы (инфа про экзамен) - Страница 2 - Форум потока ИУ6-2003
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 2 из 2
  • «
  • 1
  • 2
Форум потока ИУ6-2003 » Важные вопросы » Учебный процесс » Вычислительные системы (инфа про экзамен) (А как у Вас прошёл экзамен?)
Вычислительные системы (инфа про экзамен)
kamakamaДата: Воскресенье, 20.01.08, 16:41:47 | Сообщение # 16
Студент
Группа: Проверенные
Сообщений: 236
Репутация: 3
Статус: Offline
Dr_Logic, а теперь представь, что то, что расказывает Руденко - твоя профессия... Я же не говорю, что это в принципе не нужно, я не понял, как это можно РЕАЛЬНО использовать. Подозреваю, что не поняли абсолютное большинство людей. А Руденко, похоже, и не ставит задачи до нас это довести.

Когда государство должно Тебе, оно про Тебя забывает,
когда Ты должен государству - оно не забудет никогда.
Поэтому я обожаю РОДИНУ, а не государство
 
Dr_LogicДата: Воскресенье, 20.01.08, 20:02:01 | Сообщение # 17
Человек
Группа: Администраторы
Сообщений: 611
Репутация: 10
Статус: Offline
Андрей, в твоих выводах очень много "Я" в предпосылках и очень много общности в выводах, это твоя ошибка. Кончай оффтопить - тема про сдачу экзамена, а не про "ой, нас в бауманке ничему не учат"

Sorry for my terrible english, my native language is PHP
 
The_Painted_CowДата: Пятница, 07.03.08, 02:14:42 | Сообщение # 18
Козер
Группа: Проверенные
Сообщений: 30
Репутация: 4
Статус: Offline
Мне бы хотелось немного прояснить ситуацию с заданием по курсовой работе. Возможно, кому-то она не совсем понятна. Я, например, запутался. Пришлось выяснять. Краткое содержание предыдущих серий здесь и здесь.
Итак, по состоянию на 13.30 6 марта 2008 г. (данные обновляются регулярно biggrin ) задания выбираются следующим образом. Оба варианта по приведённым ссылкам имеют силу, и действительно то задание, которое Руденко показывал каждому на первой консультации. При этом первый вариант (с однородной ВС) он давал тем, кто пришёл раньше, а второй (с неоднородной ВС) - тем, кто позже. Опять-таки, раньше и позже какой даты, выяснить не удалось, но вероятно это где-то на прошлой неделе, когда были смотры.
Наши корреспонденты следят за развитием событий. Подробности в следующих выпусках. biggrin


Wonderfulhumanbeings
 
SPAДата: Пятница, 07.03.08, 13:00:20 | Сообщение # 19
Обер козер
Группа: Модераторы
Сообщений: 99
Репутация: 9
Статус: Offline
The_Painted_Cow, а есть ли смысл заморачиваться с тем, какой вариант кому делать? Почему просто одному человеку не реализовать тот вариант, который был опубликован позже и не поделиться с остальными?
 
Dr_LogicДата: Пятница, 07.03.08, 23:38:24 | Сообщение # 20
Человек
Группа: Администраторы
Сообщений: 611
Репутация: 10
Статус: Offline
Есть смысл, нет смысла, мне было очень интересно узнать, как там обстоят дела с руденко.

Sorry for my terrible english, my native language is PHP
 
SPAДата: Суббота, 08.03.08, 00:23:19 | Сообщение # 21
Обер козер
Группа: Модераторы
Сообщений: 99
Репутация: 9
Статус: Offline
Dr_Logic, да нормально дела с ним обстоят. Как только узнаем, что означает пункт 4.2 из его последнего варианта требований к курсачу и как время будет свободное - так появится прога.
 
kamakamaДата: Воскресенье, 23.03.08, 00:13:51 | Сообщение # 22
Студент
Группа: Проверенные
Сообщений: 236
Репутация: 3
Статус: Offline
Кто начал делать Руденко или хотя бы зашарился, как и что надо сделать...
Алгоритм, прочитанный Руденко, очень мутный, может, ниже приведенный сгодится как более простой. Кто разбирается, посмотрите, может он в корне неправильный...

//приведеный алгоритм учитывает веса вершин и веса ребер графа алгоритма. Веса вершин показывают,
//сколько времени будет работать оператор, вес ребра - сколько времени занимает передача данных
//По версии Руденко, веса ребер должны быть объемы передаваемых данных, но в этом случае раздельно
//выполнять разбиенеи на нити и назначение процессоров невозможно. Поэтому делаем по-другому.

{оригинальный алгоритм очень мутный, вместо него предлагается несколько более простой и ясный, хотя
и менее эффективный (наверное) :)))))
Исходные данные: матрица следования, веса вершин(время выполнения оператора), веса ребер
(время передачи данных)
Конечные данные: описание нитей в виде массива структур TThreads, в которых описывается
время старта и конца нити, входящие в нее операторы и связанные с ней нити.

1) Алгоритм изначально порождает столько нитей, сколько начальных вршин в S.

2) Вычисляем ранние сроки выполнения операторов по матрице следования S(лаба 7). Так как
задача всей курсовой состоит в том, чтобы минимизировать время при минимзации числа процов,
то можно брать ранние сроки и не заботится о числе процов. На основании этого можно вычислить
раннее времени решения задачи (то есть минмиальное время, за которое задача вообще может быть решена).
При вычислении рассматриваем, что передача данных идет мгновенно, то есть дуги взвешены 0.
По сути, рассматриваем вариант, что у нас есть 40 процов, на каждом из которых выполняется
по одному оператору.

3) Начинаем строить нити, изначально их число равно числу начальных вершин. Дальше берем связанные
с ними вершины и включаем их в нити (метод выбора вершин достаточно произвольный, предлагается
брать по дугам с максимальным весом, что бы минимизировать время передачи по сети).
Между операторами, входящих в одну нить, на передачу данных время не тратится, поэтому его не
суммируем при расчете времени выполнения нити. Включенные вершины помечаем как назначенные нити.
Нити строим от начала до конца каждую (от начальных до конечных вершин), эти нити назовем
стержневыми, так как они образуют основу планирования.

4) После того, как выполнили построение стержневых нитей, начинаем строить остальные. В цикле
просматриваем операторы алгоритма, берем первый, для которого не указана принадлежность к нити,
строим аналогично п.3, отмечаем его зависимости от операторов, принадлежащих другой нити, рассчитываем
сроки выполнения нити (здесь уже учитываем время передачи информации между нитями)
и берем следующий оператор, для которого не указана нить. Таким образом, на выходе получится,
что все операторы закрепляются за нитями, для которых можно оценить:
- ранний срок начала выполнения(ранний срок выполнения первого оператора t0)
- ранний срок конца выполнения(сумма t0 и раннего срока )
}

Добавлено (23.03.08, 00:13:51)
---------------------------------------------
Используемая структура TThread
TThread=record//описывает нить
StartTime:integer;//раннее время запуска нити
EndTime:integer;//раннее время останова нити
Alg:array[0..PathMatrixD-1] of integer;//операторы, входящие в нить
MitThread:array[0..PathMatrixD-1] of integer;//нити, связанные с данной
end;


Когда государство должно Тебе, оно про Тебя забывает,
когда Ты должен государству - оно не забудет никогда.
Поэтому я обожаю РОДИНУ, а не государство
 
SPAДата: Воскресенье, 23.03.08, 20:01:58 | Сообщение # 23
Обер козер
Группа: Модераторы
Сообщений: 99
Репутация: 9
Статус: Offline
kamakama, осталось понять только один момент - как из матрицы следования веса дуг извлекаются?
 
kamakamaДата: Воскресенье, 23.03.08, 21:36:18 | Сообщение # 24
Студент
Группа: Проверенные
Сообщений: 236
Репутация: 3
Статус: Offline
А никак, веса дуг задаются отдельно для каждой связи. То есть матрица смежности состоит не из целых чисел, а из структуры вида
TLinkProc=record
//описывает связь между вершинами в графе алгоритмов - избыточная, но простая
Link:string[4];//' ' если связи нет, '1' если есть инф, 'TF', если логическая
PLink:integer;//вес связи
end;


Когда государство должно Тебе, оно про Тебя забывает,
когда Ты должен государству - оно не забудет никогда.
Поэтому я обожаю РОДИНУ, а не государство
 
The_Painted_CowДата: Воскресенье, 23.03.08, 23:22:37 | Сообщение # 25
Козер
Группа: Проверенные
Сообщений: 30
Репутация: 4
Статус: Offline
kamakama, это не совсем верно. Ну то есть как... Оригинальный алгоритм не работает вообще, поэтому об идее можно судить только по тому, что показывал Руденко, разбивая граф в виде примера. По его рассказам я написал этот алгоритм заново, многие пункты взял из описанного в лекциях, вроде всё получилось, но я ещё не отлаживал, поэтому о его работе говорить преждевременно. Если всё заработает, выложу сюда. И некоторые комментарии по пунктам:
0) По поводу конечных данных согласен, однако информация касательно вершин в нити в дальнейшем не потребуется, поэтому сохранять её нет смысла. Роль номера нити, как я понимаю, у тебя выполняет индекс массива. Вообще, массив я бы не использовал, поскольку связи с другими нитями естественно сделать указателями, которые придётся потом прикручивать к массиву. Но это уже детали реализации...
Кроме того, насколько мне известно, веса дуг отражают именно времена передачи, и поэтому при формировании нити между всеми операторами, входящими в нить, они зануляются.
Руденко предлагает для сокращения исходных данных веса дуг сохранять прямо в матрице следования, т.е. вместо "1" записывать вес дуги. Он сказал, что ему это предложили студенты. Мысль в целом правильная, однако этот способ не позволяет обозначить дугу с нулевым весом.
1) Это не совсем так. В процессе формирования нитей появляются новые начальные вершины и из каждой формируется нить. Но это несущественно.
2) Верно, но только после отработки алгоритма. На входе алгоритма исходный граф со взвешенными дугами, на выходе - граф результата с несколькими удалёнными связями и изменёнными весами вершин (под действием удаления весов дуг во время работы алгоритма). Ранние сроки необходимо считать по графу, который имеет ту же матрицу следования, что исходный граф, но веса от результирующего графа. При этом в указанном алгоритме подсчёта ранних сроков веса дуг следует игнорировать, то есть считать только наличие/отсутствие связи.
3) Методика выбора следующего оператора при построении нити хорошо описана в алгоритме в лекциях. Откровенно говоря, я её полностью оттуда и взял.
4) Идея со стержневыми нитями не очень понятна, хотя что-то подобное есть. Но то, что начальные вершины алгоритма обрабатываются раньше, чем "отрезанные", получается бесплатно, и ничего предпринимать для этого не требуется. И это правильно smile

По поводу поста про логические связи. Этот алгоритм разрезания работает только с ИГ, то есть с графами, у которых в матрице следования либо 0, либо 1 (или, по новым веяниям, целый вес). Поэтому для его запуска из исходного ИЛГ требуется сформировать n ИГ. Алгоритм формирования также есть в лекциях. Насчёт doc-варианта не знаю, а в конспектах Дамиры есть. Они, кстати, мне показались более корректными, чем печатный вариант. И лицензия на MS Office для просмотра не требуется biggrin

В целом проблема обозначена правильно, поскольку алгоритм весьма запутан.


Wonderfulhumanbeings
 
kamakamaДата: Понедельник, 24.03.08, 19:27:59 | Сообщение # 26
Студент
Группа: Проверенные
Сообщений: 236
Репутация: 3
Статус: Offline
Согласен, выделять стержневые нити смысла не имеет, так я просто хотел выделить тот факт, что изначально нитей столько, сколько начальных вершин. Конкретно сейчас есть уже реализованный алгоритм, который выполняет выделение нитей и их уплотнение, осталось только раскидать их по процам и все smile

Предлаемая идея не связана ни с какими разрезаниями. Просто каждый оператор прикрепляется к нити и все. А потом нити разбрасываются по процам. Связанные нити - по соседним, несвязанные - по удаленным. Единствееное НО: он говорил, что есть просто передача данных в соседний проц, а есть транзитная передача (когда связей не хватает). Хоть убейся, но не ясно, как время передачи информации транзитно и напрямую может быть одинаково. У него просто получается, что алгоритм (а не ВС), характеризуется временем передачи данных между операторами, хотя на самом деле алгоритм характеризуется объемом передаваемых данных, а вот их скорость (и время) передачи - свойство ВС, которое зависит от того, как спланировали вычисления. Неувязочка вышла sad Алгоритмы надо применять как-то параллельно, а не последовательно.

По поводу отметок в матрице следования - обозначать отсутсвие связи -1. И все, нулевой вес есть.

Единственно не понятно про ИЛГ - в чем тут принципиальное отличие от ИГ, может, просто рассматривать значения TF как 1 и все? Что мы должны будем при планировании исключить операторы, которые не пойдут в исполнение? Это существенно усложнит задачу, так как потребует заново формировать алгоритмы и их анализировать. Всего 2^n различных графов, где n-число логических операторов плюс писать еще один алгоритм переделки графов sad

По поводу рализации - если бы было много времени и за это заплатили много денег, то сделали бы красиво, а так - как получится... Там одной визуализации заглаза хватает...

Добавлено (24.03.08, 19:25:17)
---------------------------------------------
И в дополнение к вышесказанному. Алгоритм распределения нитей по ВС.
Известна: список нитей и их взаимосвязь, структура ВС (гипертор, гиперкуб, циркулянта)
Надо: раскидать нити по ВС, чтобы процы, на которых выполняются нити, были связаны между собой напрямую или через транзитные процы.
Вроде все легко, у Руденко все это описано в алгоритме, но есть одно НО: что делать в том случае, когда есть 3 и более взаимосвязанных нитей (такое на 40 операторах вполне реально)??? Несложно предстваить ситуацию, когда физически трудно (в некоторых случаях - нереально) разместить эти нити руками (автоматом молчу - алгоритм будет очень хитрый sad ), если использовать только один транзитный проц. Самое противное то, что очень сложно сделать руками даже "куклу" - муляж проги, а если писать прогу, то она в этом случае будет явно валиться или некорректно работать.

Поэтому необходимо генерить структуру ВС, в которую статически закладывается возможность с любого проца достучатся до любого через n-транзитных процов. Для гиперкуба и гипертора это достаточно просто, а вот с циркулянтами сложнее. Вообще, считаю, что кому они попались, тем не повезло - хитрая структура...

Добавлено (24.03.08, 19:27:59)
---------------------------------------------
Кого заинтерсовала структура гипертора и гиперкуба, обеспечивающая связь через транзитные процы "каждый с каждым", звоните или пишите в личку.


Когда государство должно Тебе, оно про Тебя забывает,
когда Ты должен государству - оно не забудет никогда.
Поэтому я обожаю РОДИНУ, а не государство


Сообщение отредактировал kamakama - Понедельник, 24.03.08, 19:29:54
 
The_Painted_CowДата: Среда, 26.03.08, 23:11:43 | Сообщение # 27
Козер
Группа: Проверенные
Сообщений: 30
Репутация: 4
Статус: Offline
Мда, видимо, в связи со всем этим надо дописать до анимации (то есть, по сути, только алгоритм разрезания) и привязать морду. А дальше просто вывести различные показатели, которые отражают результаты выполнения определённого алгоритма на некоторой структуре ВС smile

Wonderfulhumanbeings
 
Форум потока ИУ6-2003 » Важные вопросы » Учебный процесс » Вычислительные системы (инфа про экзамен) (А как у Вас прошёл экзамен?)
  • Страница 2 из 2
  • «
  • 1
  • 2
Поиск: