Разработка элементов пользовательского интерфейса для облачной системы взаимодействия с кластером
Информационные технологии в области высокопроизводительных вычислений. Структура вычислительного кластера. Преимущества кластерной архитектуры, требования к ней. Разработка программ для параллельных вычислительных систем. Особенности облачных технологий.
Рубрика | Программирование, компьютеры и кибернетика |
Вид | дипломная работа |
Язык | русский |
Дата добавления | 02.08.2015 |
Размер файла | 2,7 M |
Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже
Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.
// class name for the relations automatically generated below.
return array (
'task' => array (self:: BELONGS_TO, 'Task', 'task_id'),
);
}
/**
* @return array customized attribute labels (name=>label)
*/
public function attributeLabels ()
{
return array (
'id' => 'ID',
'task_id' => 'Task',
'description' => 'Описание проекта',
'index_nano_n' => 'Индекс нанотрубки N',
'index_nano_m' => 'Индекс нанотрубки M',
'length_link' => 'Длина связи С-С',
'indent_radius_inside' => 'Отступ от радиуса внутрь',
'indent_radius_outwards' => 'Отступ от радиуса наружу',
'nuclear_charge' => 'Заряд ядра',
'valence_electrons' => 'Валентных электронов',
's_orbital' => 'Энергия s орбитали',
'p_orbital' => 'Энергия p орбитали',
'd_orbital' => 'Энергия d орбитали',
'f_orbital' => 'Энергия f орбитали',
'g_orbital' => 'Энергия g орбитали',
'auto_calculate' => 'Автоматически рассчитывать координаты атомов',
'max_energy' => 'Максимальная энергия для которой ищутся базисные функции (Энергия обрезания) ',
'accuracy_calculation' => 'Точность вычисления двойных интегралов и сходимости по 1',
'number_points' => 'Начальное колличество точек рассчета в зоне Бриллюэна',
'calculation_zone' => 'Рассчет по полной зоне Бриллюэна (-pi/c - pi/c) ',
'max_energy_graph' => 'Максимальное значение энергии на графике',
'min_energy_graph' => 'Минимальное значение энергии на графике',
'time_calculation' => 'Ограничение времени рассчета (минут) ',
);
}
/**
* Retrieves a list of models based on the current search/filter conditions.
*
* Typical usecase:
* - Initialize the model fields with values from filter form.
* - Execute this method to get CActiveDataProvider instance which will filter
* models according to data in model fields.
* - Pass data provider to CGridView, CListView or any similar widget.
*
* @return CActiveDataProvider the data provider that can return the models
* based on the search/filter conditions.
*/
public function search ()
{
// @todo Please modify the following code to remove attributes that should not be searched.
$criteria=new CDbCriteria;
$criteria->compare ('id',$this->id);
$criteria->compare ('task_id',$this->task_id);
$criteria->compare ('description',$this->description,true);
$criteria->compare ('index_nano_n',$this->index_nano_n);
$criteria->compare ('index_nano_m',$this->index_nano_m);
$criteria->compare ('length_link',$this->length_link);
$criteria->compare ('indent_radius_inside',$this->indent_radius_inside);
$criteria->compare ('indent_radius_outwards',$this->indent_radius_outwards);
$criteria->compare ('nuclear_charge',$this->nuclear_charge);
$criteria->compare ('valence_electrons',$this->valence_electrons);
$criteria->compare ('s_orbital',$this->s_orbital);
$criteria->compare ('p_orbital',$this->p_orbital);
$criteria->compare ('d_orbital',$this->d_orbital);
$criteria->compare ('f_orbital',$this->f_orbital);
$criteria->compare ('g_orbital',$this->g_orbital);
$criteria->compare ('auto_calculate',$this->auto_calculate);
$criteria->compare ('max_energy',$this->max_energy);
$criteria->compare ('accuracy_calculation',$this->accuracy_calculation);
$criteria->compare ('number_points',$this->number_points);
$criteria->compare ('calculation_zone',$this->calculation_zone);
$criteria->compare ('max_energy_graph',$this->max_energy_graph);
$criteria->compare ('min_energy_graph',$this->min_energy_graph);
$criteria->compare ('time_calculation',$this->time_calculation);
return new CActiveDataProvider ($this, array (
'criteria'=>$criteria,
));
}
/**
* Returns the static model of the specified AR class.
* Please note that you should have this exact method in all your CActiveRecord descendants!
* @param string $className active record class name.
* @return TaskData the static model class
*/
public static function model ($className=__CLASS__)
{
return parent:: model ($className);
}
}
views/tasks/index. php
<? php
/* @var $this TasksController */
/* @var $model Task */
$this->buttons = array (
array (
'items' => array (
array ('url' => array ('/tasks/create'), 'label' => 'Создать задачу', 'icon' => 'plus white'),
),
'color' => TbHtml:: BUTTON_COLOR_PRIMARY,
),
);
$this->widget ('TbGridView', array (
'id' => 'user-list',
'dataProvider' => $model->search (),
'filter' => $model,
'template' => '{summary} {items} {pager}',
'enableHistory' => false,
'columns' => array (
array (
'name' => 'id',
'htmlOptions' => array (
'class' => 'centred',
'style' => 'width: 20px'
)
),
array (
'name' => 'created',
'value' => function (Task $data) {
return HDates:: ui ($data->created);
}
),
array (
'name' => 'status',
'filter' => TaskStatus:: getList (),
'value' => function (Task $data) {
return TaskStatus:: getName ($data->status);
}
),
array (
'name' => 'name',
),
array (
'name' => 'type',
'filter' => TaskType:: getList (),
'value' => function (Task $data) {
return TaskType:: getName ($data->type);
}
),
array (
'class' => 'bootstrap. widgets. TbButtonColumn',
'template' => '{update} {delete} {view}',
'viewButtonUrl'=> 'Yii:: app () - >controller->createUrl ("result",array ("id"=>$data->primaryKey)) '
),
),
));
views/tasks/tabs. php
<? php
/**
* @var $this TasksController
* @var $model Task
*/
/** @var TbActiveForm $form */
$form = $this->beginWidget (BS_ActiveForm, array (
'layout' => TbHtml:: FORM_LAYOUT_HORIZONTAL,
'enableAjaxValidation' => true,
'enableClientValidation' => true,
));
$this->widget ('TbTabs', array (
'tabs' => array (
array (
'label' => "Общие",
'content' => $this->renderPartial ('form', compact ('form', 'model'), true),
'active' => true
),
array (
'label' => "Свойства атомов",
'content' => $this->renderPartial ('form2', compact ('form', 'model'), true),
),
array (
'label' => "Cвойства рассчета",
'content' => $this->renderPartial ('form3', compact ('form', 'model'), true),
)
)
));
echo TbHtml:: formActions (array (
TbHtml:: submitButton ($model->isNewRecord? 'Создать': 'Сохранить', array ('color' => TbHtml:: ALERT_COLOR_SUCCESS)),
TbHtml:: resetButton ('Отмена')
));
$this->endWidget ();
views/tasks/form. php
<? php
/**
* @var $this TasksController
* @var $model Task
* @var TbActiveForm $form
*/
echo $form->textFieldControlGroup ($model, 'name');
echo $form->textFieldControlGroup ($model->data, 'description');
echo $form->textFieldControlGroup ($model->data, 'index_nano_n');
echo $form->textFieldControlGroup ($model->data, 'index_nano_m');
echo $form->textFieldControlGroup ($model->data, 'length_link');
echo $form->textFieldControlGroup ($model->data, 'indent_radius_inside');
echo $form->textFieldControlGroup ($model->data, 'indent_radius_outwards');
views/tasks/form2. php
<? php
/**
* @var $this TasksController
* @var $model Task
* @var TbActiveForm $form
*/
echo $form->textFieldControlGroup ($model->data, 'nuclear_charge');
echo $form->textFieldControlGroup ($model->data, 'nuclear_charge');
echo $form->textFieldControlGroup ($model->data, 'valence_electrons');
echo $form->textFieldControlGroup ($model->data, 's_orbital');
echo $form->textFieldControlGroup ($model->data, 'p_orbital');
echo $form->textFieldControlGroup ($model->data, 'd_orbital');
echo $form->textFieldControlGroup ($model->data, 'f_orbital');
echo $form->textFieldControlGroup ($model->data, 'g_orbital');
views/tasks/form3. php
<? php
/**
* Created by PhpStorm.
* User: evgeny
* Date: 26.05.15
* Time: 10: 14
*/
/**
* @var $this TasksController
* @var $model Task
* @var TbActiveForm $form
*/
// echo $form - >label ($model->data, 'auto_calculate');
echo $form->textFieldControlGroup ($model->data, 'max_energy');
echo $form->textFieldControlGroup ($model->data, 'accuracy_calculation');
echo $form->textFieldControlGroup ($model->data, 'number_points');
echo $form->textFieldControlGroup ($model->data, 'max_energy_graph');
echo $form->textFieldControlGroup ($model->data, 'min_energy_graph');
echo $form->textFieldControlGroup ($model->data, 'time_calculation');
echo $form->checkBoxControlGroup ($model->data, 'auto_calculate');
echo $form->checkBoxControlGroup ($model->data, 'calculation_zone');
views/tasks/result. php
<? php
/* @var $this TasksController */
/* @var $model Task */
$filePath = DATA_PATH. 'tasks/'. $model->id. '. json';
$json = file_get_contents ($filePath);
$data = json_decode ($json, true);
$xCnt = count ($data ['x']);
$yCnt = count ($data ['y'] [0] [0]);
$maxX = $data ['x'] [$xCnt - 1];
$step = $maxX / $xCnt;
$colors = ['red', 'orange', 'yellow', 'green', 'lightblue', 'blue', 'purple'];
$n = 0;
$config = [];
foreach ($data ['y'] as $l => $values) {
$offset = $l*$yCnt;
foreach ($values [0] as $line => $value) {
$config [$offset + $line] ['name'] = "Фаза L=$l";
$config [$offset + $line] ['pointInterval'] = $step;
$config [$offset + $line] ['color'] = $colors [$l];
$config [$offset + $line] ['id'] = $offset + $line;
if ($line) {
$config [$offset + $line] ['linkedTo'] = ': previous';
}
}
foreach ($values as $x => $vector) {
foreach ($vector as $line => $value) {
$config [$offset + $line] ['data'] [] = $value;
}
}
}
$this - >Widget ('ext. highcharts. HighchartsWidget', array (
'htmlOptions' => ['style' => 'height: 1000px; '],
'options' => array (
'chart' => array (
'zoomType' => 'x'
),
'title'=> array (
'text' => 'Диаграмма зонной структуры',
'x'=> - 20,),
'xAxis' => array (
'type' => 'linear',
'min' => 0,'minPadding' => 0.1,'title' => array (
'text'=> 'Волновой вектор К'
)
),
'yAxis' => array (
'title' => array (
'text'=> 'Электроволны (эВ) '
),
),
'tooltip' => array (
'valueSuffix'=> '°C'
),
'legend' => array (
'layout'=> 'vertical',
'align' => 'right',
'verticalAlign' => 'middle',
'borderWidth' => 0
),
'plotOptions' => array (
'series' => array (
'marker' => array (
'enabled'=>false
),
'states' => array (
'hover' => array (
'halo' => array (
'size' => 1,),
)
)
)
),
'series' => $config/*array (
array (
'name' => 'l=0',
'data' => array (7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6)
),array (
'name' => 'l=0',
'data' => array (-0.2, 0.8, 5.7, 11.3, 17.0, 22.0, 24.8, 24.1, 20.1, 14.1, 8.6, 2.5)
),array (
'name' => 'Berlin',
'data' => array (-0.9, 0.6, 3.5, 8.4, 13.5, 17.0, 18.6, 17.9, 14.3, 9.0, 3.9, 1.0)
),array ('name' => 'London',
'data' => array (3.9, 4.2, 5.7, 8.5, 11.9, 15.2, 17.0, 16.6, 14.2, 10.3, 6.6, 4.8)
)
) */
)
));
Приложение 2
Текст доклада
Слайд 2. На данном слайде представлены цель и задачи, поставленные при выполнении работы.
Слайд 3. Здесь представлены различные системы управления кластером:
· NanoCloud - система, созданная для нужд Национальной нанотехнологической сети под руководством "Курчатовского института".
· "Персональный виртуальный компьютер" Южно-Уральского государственного университета.
· CLAVIRE - система, созданная Институтом информационных технологии механики и оптики.
· Unihub - технологическая платформа программы "Университетский кластер".
Слайд 4. На слайде представлены основные элементы разрабатываемой нами системы "Облачный симулятор". Она предназначена для работы с университетским кластером "Synergia" РХТУ. Администратор осуществляет общее управление пользователями и их задачами, а также ресурсами кластера.
Пользователь получает доступ к кластеру через Web-портал.
Слайд 5. Инфологическая модель приложения представлена в данных таблицах.
1-я таблица отображает структуру самой учетной записи пользователей.
2-я таблица отображает структуру пользовательских задач.
3-я таблица отображает структуру тестовой задачи.
Слайд 6. Система "Облачный симулятор" создавалась на базе фреймворка Yii. Для создания интерфейса и управляющих скриптов использовались коды, написанные на языке PHP c задействованием компонентной базы Bootstrap. Для визуализации графических данных использовалась система Highcharts.
Слайд 7. На данном слайде представлен основной функционал администратора, включающий: добавление пользователя, авторизацию под любым пользователем, редактирование учетных записей, редактирование задач пользователей, изменение роли.
Слайд 8. На слайде представлен основной функционал пользователя, включающий: регистрацию, создание задач, редактирование задач, редактирование профиля, визуализацию результатов.
Слайд 9. На данном слайде представлен интерфейс входа и регистрации пользователей.
Слайд 10. Здесь можно видеть скриншоты примеров корректного и некорректного заполнения регистрационной формы пользователем. В случае некорректного заполнения реализованы алгоритмы блокировки.
Слайд 11. В случае удачной регистрации пользователь видит следующий экран.
Слайд 12. Здесь можно видеть скриншоты профиля пользователя и смены пароля.
Слайд 13. На слайде представлен вид учетной записи пользователя. Здесь же представлены кнопки управления задачами (редактирование, удаление, визуализация).
Слайды 14 - 16. Интерфейс создания пользовательской задачи реализован на трёх вкладках. В качестве тестовой задачи был выбран квантово-механический расчет зонной структуры углеродной нанотрубки, предоставленный аспирантом кафедры ИКТ Леонидом Хорошавиным.
Слайд 17. Демонстрируется видео результатов реализации тестовой задачи. Функционал визуализации включает в себя построение графиков по результатам расчетов, их интерактивное форматирование и редактирование. Эти функции реализуются с помощью мышки (выбор, масштабирование).
Слайд 18. На слайде представлен вид учетной записи администратора. Здесь же размещены стандартные кнопки управления задачами (редактирование, удаление, авторизация под учетной записью пользователя).
Слайд 19. Экран управления учетной записью пользователя администратором можно видеть на слайде.
Слайд 20. Здесь представлена форма администрирования пользовательских задач со стандартными кнопками управления.
Слайд 21. Выводы.
Размещено на Allbest.ru
...Подобные документы
История и факторы развития облачных вычислений. Роль виртуализации в развитии облачных технологий. Модели обслуживания и принципы работы облачных сервисов. Преимущества облака для Интернет-стартапов. Применение технологии облачных вычислений в бизнесе.
реферат [56,6 K], добавлен 18.03.2015Роль распределенных вычислительных систем в решении современных задач. Инструментальная система DVM для разработки параллельных программ. Средства построения формальной модели графического интерфейса. Требования к графическому интерфейсу DVM-системы.
курсовая работа [2,7 M], добавлен 15.10.2010История развития вычислительной техники. Понятие высокой готовности и отказоустойчивости системы. Разработка функциональной схемы отказоустойчивого кластера и структурной схемы виртуального стенда. Технико-экономическое обоснование объекта проектирования.
дипломная работа [2,7 M], добавлен 26.02.2013Анализ применения информационных технологий в организации обучения. Особенности проектирования автоматизированных информационно-справочных систем. Обзор средств создания приложения. Разработка пользовательского интерфейса программы, ее тестирование.
курсовая работа [1,2 M], добавлен 09.04.2015Анализ структуры и содержания плана маркетинга компании. Рынок облачных вычислений и возможность их применения. Отбор источников информации и представление полученных результатов. Разработка программной инструментальной оболочки облачных вычислений.
дипломная работа [149,8 K], добавлен 12.11.2013Понятие вычислительных систем, их классификация по различным признакам. Модели параллельных вычислений PGAS и APGAS. Разработка программного продукта для анализа информационных обменов в параллельных программах на языке IBM X10. Расчёт его себестоимости.
дипломная работа [1,6 M], добавлен 10.06.2013Требования к метрологическому обеспечению. Разработка архитектуры пользовательского интерфейса. Требования к программному, математическому, информационному обеспечению. Функциональная схема автоматизации. Разработка схемы информационных потоков.
курсовая работа [343,1 K], добавлен 20.12.2013Анализ особенностей жанров и технологий видеоигр. Обзор средств разработки видеоигр. Требования к разрабатываемому программному обеспечению. Разработка архитектуры программы и пользовательского интерфейса. Бизнес-модель внедрения видеоигры на рынок.
дипломная работа [1,7 M], добавлен 25.06.2017Сущность облачных вычислений, основные направления развития, достоинства и недостатки. Сеть Интернет как платформа научных коммуникаций. Разработка портала студенческого научного общества. Проектирование интерфейса web-сайта, выбор программных средств.
дипломная работа [5,9 M], добавлен 18.07.2014Изучение методов создания диалоговой оболочки отладчика MPI-программ, который войдет в состав системы автоматизации разработки параллельных программ (DVM-системы). Основные подходы к параллельному программированию и созданию пользовательского интерфейса.
курсовая работа [1,5 M], добавлен 14.10.2010Отличительные черты компьютерных программ экспертных систем, их разработка. Составные части систем: база знаний, механизм вывода, система пользовательского интерфейса. Структура базы знаний экспертной системы для помощи медикам в постановке диагноза.
курсовая работа [325,0 K], добавлен 04.02.2011Области применения быстрых вычислений. Проблемы эффективности последовательных и параллельных программ. Отображение циклов с условными операторами на асинхронные архитектуры. Рассмотрение исследовательских университетских распараллеливающих систем.
презентация [833,3 K], добавлен 07.08.2015История возникновения компьютерной науки. Продукты компании Apple. Основные категории, отличительные особенности, уровни облачных сервисов. Характеристика публичных и частных облаков. Преимущества и недостатки облачных вычислений, перспективы их развития.
контрольная работа [1,6 M], добавлен 06.08.2013Знакомство с историей развития многопроцессорных комплексов и параллельных вычислений. Персональные компьютеры как распространенные однопроцессорные системы на платформе Intel или AMD, работающие под управлением однопользовательских операционных систем.
презентация [1,1 M], добавлен 22.02.2016Пакетный метод как основной способ выполнения коммуникационных операций, его содержание и предъявляемые требования. Оценка трудоемкости операции передачи данных между двумя узлами кластера. Этапы разработки параллельных алгоритмов (распараллеливания).
презентация [318,1 K], добавлен 10.02.2014Историческое развитие средств вычислений. Структурные схемы вычислительных систем. Развитие элементной базы и развитие архитектуры самих систем. Основные классы вычислительных машин. Каналы передачи данных. Требования к составу периферийных устройств.
реферат [48,7 K], добавлен 09.01.2011Создание и уровни реализации облачных вычислений. Достоинства и недостатки использования облачных технологий в организации единого информационного пространства. Оценка важности критериев методом "Попарного сравнения", "Тепловых карт", "Экспертных оценок".
дипломная работа [1,3 M], добавлен 08.04.2014Понятие облачных вычислений, их преимущества и недостатки; виды облаков. Сравнительный анализ рисков использования облачных сервисов в России и ЕС. Регуляторы в области информационной безопасности, их концепции, особенности и регулирующие органы власти.
курсовая работа [79,1 K], добавлен 14.05.2014Пути достижения параллелизма вычислений. Понятие и разновидности, а также сферы и особенности использования суперкомпьютеров. Параллельные вычисления как процессы решения задач, в которых могут выполняться одновременно несколько вычислительных операций.
презентация [8,3 M], добавлен 11.10.2014Роль структуры управления в информационной системе. Примеры информационных систем. Структура и классификация информационных систем. Информационные технологии. Этапы развития информационных технологий. Виды информационных технологий.
курсовая работа [578,4 K], добавлен 17.06.2003