УТОЧНЕНИЕ ПОНЯТИЯ «ПАРАЛЛЕЛЬНЫЙ СТИЛЬ МЫШЛЕНИЯ»
НА ОСНОВЕ ИНФОРМАЦИОННО-ДЕЯТЕЛЬНОСТНОГО ПОДХОДА
Курс «Основы параллельного программирования», стили мышления, пространствен-но-временная модель памяти, параллельный стиль мышления.
Одной из актуальных проблем развития вычислительной техники является создание параллельных вычислительных систем для решения объемных вычислительных задач. Знание современных тенденций развития вычислительной техники и аппаратных средств для достижения параллелизма, умение разрабатывать модели, методы и программы параллельного решения задач обработки данных следует отнести к важным квалификационным характеристикам современного пр огр аммиста.
В настоящее время, когда на многоядерных процессорах стали работать обычные приложения, параллельное программирование становится технологией, которую должен освоить и уметь применять любой профессиональный разработчик программного обеспечения [Мэттсон, Чернышев]. Достаточно полное представление о параллельном программировании должен иметь и будущий учитель информатики, поскольку современные подходы к совершенствованию системы среднего образования предъявляют высокие требования к уровню предметной подготовки учителя. По этой причине в подготовке студентов педагогического вуза важное место занимает курс «Программирование», в котором предписывается изучение различных парадигм и технологий программирования, в том числе и параллельного.
Сложность введения в предметную подготовку студентов элементов параллельного программирования связана с тем, что у них необходимо изменить традиционные подходы к решению поставленной задачи, перестроить мыслительную деятельность на необычный стиль мышления.
Каждая парадигма и технология программирования предполагают формирование определённого стиля мышления — объектного, функционального, логического [Нигматулина, Степанова, 2011].
Освоение параллельного программирования может быть успешным при условии изменения характера мыслительной деятельности, формирования специфичного стиля мышления, которое назовём параллельным.
В этой связи основной целью данной статьи является уточнение понятия «параллельный стиль мышления» на основе сочетания пространственно-временной модели памяти [Пак, 2011] и психологической теории деятельности [Леонтьев, 2004].
Память человека в каждый момент времени может быть условно разделена на 4 области (рис. 1):
— чувственную область, в которой фиксируются в виде чувственных образов отражения объектов внешнего мира, воспринятые при помощи сенсорной системы;
- модельную область, в которой хранятся образы модельного отражения окружающего мира;
— понятийную область, в которой хранятся образы понятий в аудиально-знаковой форме, связанные со свойствами воспринятых объектов и событий [Вольхин, Пак, 2011];
— абстрактную область, в которой хранятся образы обобщенных понятий (абстракции).
° О о ° о о О о о о ° □ □ □п Л А А А
Чувственная область Модельная область Понятийная область Абстрактная область
Рис. 1. Пространственно-временная модель структуры памяти
Извлечение информации из памяти происходит путем активации соответствующих образов в рассмотренных областях. В этой связи можно принять следующие определения базовых понятий:
мысль — это активированный образ в памяти;
мыслительный процесс, или мышление, — это способ активации последовательной цепочки образов (мыслей).
Цепочки активных образов могут выстраиваться различными способами. Мыслительный процесс может быть чисто чувственным (активная цепочка из образов чувственной области памяти), модельным или абстрактным либо смешанным — активируется последовательность образов из разных областей памяти (рис. 2).
Рис. 2. Последовательный способ мышления
Объекты реального мира, воспринимаемые одновременно, образуют в соответствующей области памяти образы, которые также формируются или активизируются одновременно. При этом если объекты реального мира вовлечены в параллельно протекающие несвязанные процессы, то цепочки, порождаемые такими объектами, также возникают параллельно и могут иметь разные конфигурации (рис. 3). С переходом от чувственной и модельной области к понятийной и абстрактной процесс формирования сложных, ветвящихся цепочек, по сути, не изменяется.
Рис. 3. Параллельный способ мышления
Согласно положениям психологической теории деятельности А.Н. Леонтьева, формирование рассмотренных на рис. 3 цепочек наиболее эффективно осуществляется в процессе соответствующей деятельности. Рассмотрим основные положения этой теории. Специальные психические процессы, в том числе и мышление, не могут рассматриваться вне системы отношений деятельность — сознание, их общих системных качеств, поскольку «существуют только в описанных отношениях системы, на тех или иных ее уровнях» [Леонтьев, 2004, с. 121].
Связи субъекта с материальным миром осуществляются через деятельность, он получает отражение в сознание именно благодаря соответствующей деятельности, поскольку «развитие деятельности необходимо приводит к возникновению психического отражения реальности...» [Леонтьев, 2004, с. 304].
«Всякий мыслительный процесс является по своему внутреннему строению действием или актом деятельности, направленным на разрешение определенной задачи» [Рубинштейн, 2008, с. 311]. Очень важную роль для мыслительного процесса представляют «специфические “навыки” мышления», возникающие в процессе целенаправленного решения определенных задач [Рубинштейн, 2008].
Таким образом, для того чтобы студенты могли выстраивать мысленные логические и алгоритмические цепочки, их нужно вовлекать в деятельность, связанную с анализом параллельного протекания внешних процессов, в том числе и программных.
В отличие от программирования последовательных вычислений, концептуальную основу которого составляет понятие алгоритма, реализуемого по шагам строго последовательно во времени, в параллельном программировании программа порождает совокупность параллельно протекающих процессов обработки информации, полностью независимых или связанных между собой статическими или динамическими пространственно-временными или причинно-следственными отношениями.
Параллельное программирование включает в себя все черты более традиционного, последовательного (структурного) программирования, но в параллельном программировании имеются три дополнительных, чётко определённых этапа.
Определение параллелизма: анализ задачи с целью выделить подзадачи, которые могут выполняться одновременно.
Выявление параллелизма: изменение структуры задачи таким образом, чтобы можно было эффективно выполнять подзадачи. Для этого часто требуется найти зависимости между подзадачами и организовать исходный код так, чтобы ими можно было эффективно управлять.
Выражение параллелизма: реализация параллельного алгоритма в исходном коде с помощью системы обозначений параллельного программирования [Мэттсон, Чернышев].
В процессе изучения параллельной технологии программирования формируется параллельный стиль мышления, предполагающий способность к предварительному умозрительному «распараллеливанию» поставленной задачи — её анализу с целью выделения подзадач, «распараллеливанию» потоков данных - выделение потоков данных, которыми будут обмениваться выполняемые параллельно подзадачи. При этом в памяти формируются временные цепочки взаимосвязей понятийных и абстрактных объектов (рис. 4).
Рис. 4. Формирование информационных связей понятийных и абстрактных объектов
С учётом вышесказанного под параллельным стилем мышления будем подразумевать такой способ алгоритмической мыслительной деятельности, который при осознанной, специально организованной последовательности действий приводит к параллельному решению поставленной задачи. Структура параллельного стиля мышления может быть представлена упрощённой моделью (рис. 5).
В данной модели большую роль играют этапы, дополняющие привычный процесс последовательного решения. Органичное включение указанных этапов в процесс решения задачи, осознание их важности являются составляющими такого способа алгоритмической мыслительной деятельности, который назван параллельным стилем мышления.
Рис. 5. Структура параллельного стиля мышления
Помимо указанных в модели этапов: выделение подзадач, установление информационных зависимостей и организация информационного взаимодействия подзадач, очень важную роль играет понимание того, что все подзадачи на самом деле выполняются параллельно (одновременно). Как показывает практика, этот факт декларируется студентами на словах, но фактически не воспринимается и не понимается в полной мере.
Эта проблема выражается, например, в следующих сложностях: студенты не сразу понимают, что одна переменная после запуска имеет р копий и копии могут иметь разные значения (часто встречается в МР1). Также студенты зачастую не понимают, как происходит взаимодействие процессов, если в программном коде сначала указана функция приёма данных, а только потом отправки — возникает внутреннее противоречие с привычным последовательным стилем кодирования, при котором все действия в программе выполняются строго последовательно. В этом случае студенты не понимают (хотя видят в программе), что вызов функции зависит от номера процесса и одна задача делает одно действие, а вторая в это же время другое.
Формирование понимания особенностей параллельных вычислений — это длительный и, как показывает опыт, сложный процесс, в ходе которого «ломаются» привычные стереотипы как в трактовке (чтении), так и в составлении программного кода. При этом формируется новый способ алгоритмической деятельности — параллельный стиль мышления.
К предложенной модели необходимо сделать ещё несколько пояснений. Модель условно можно разделить на две части. Первая часть — это дополнительные (по отношению к структурному программированию) этапы параллельного решения задач, которые образуют довольно строгую последовательность. Вторая часть демонстрирует необходимость добиваться полного понимания процесса решения на каждом из этапов для любой задачи (эта необходимость отображена двунаправленными рёбрами, связывающими понимание с каждым из этапов, дополняющих обычный процесс решения).
Согласно предложенной модели структуры параллельного стиля мышления, можно выделить следующие этапы его формирования.
1. Пропедевтический.
2. Основной.
3. Закрепляющий.
Сущность работы на пропедевтическом этапе видится в том, чтобы в учебных дисциплинах, предшествующих изучению курса «Основы параллельного программирования» и предполагающих изучение языков программирования, применять методику параллельного изучения этих языков. Согласно этой методике, теоретический материал на лекциях по программированию даётся параллельно, т. е. одновременно излагается реализация одних и тех же алгоритмических структур в разных языках программирования [Жужжалов, 2004]. Далее на лабораторном занятии студентам предлагается решить одну и ту же конкретную задачу средствами различных языков [Нигматулина, Степанова, 2011].
На формирование параллельного стиля мышления на основном этапе преподаватель может и должен оказывать влияние, выражающееся в том, что акцент в деятельности студентов должен быть сделан на формировании тех мысленных действий, которые являются составными частями модели параллельного стиля мышления.
Рассмотрим некоторые примеры включаемых в лабораторные работы заданий, которые могут выступать как составные части фронтального (или группового) разбора задачи, или как самостоятельные тренировочные задания.
Для формирования умения выделять информационно-независимые подзадачи можно использовать индивидуальные или групповые задания, требующие разбить некоторую задачу на части. Как продолжение работы может выступать упражнение: изобразить граф информационных зависимостей и проанализировать его с целью выделения групп подзадач, связанных между собой сильнее прочих или слабее. В этом случае мы способствуем формированию умения «видеть» информационные связи между подзадачами и в перспективе планировать организацию обменов данными между процессами программы.
Одним из эффективных приёмов, направленных на понимание параллельной работы нескольких процессов, является пошаговое прохождение фрагмента параллельной программы несколькими студентами, которые выступают в роли параллельных процессов. В ходе пошагового одновременного выполнения работы нескольких процессов студенты лучше понимают ход работы параллельной программы, особенности обменов данными и изменение способа прочтения «якобы» последовательных действий процессов в параллельной программе.
Также можно в виде игры демонстрировать отличия режимов точечных обменов данными (например, в МР1). Эти отличия, хоть и могут существенно влиять на работу программы, тем не менее плохо воспринимаются при простом словесном объяснении и нуждаются в наглядной демонстрации.
Последующее развитие параллельного стиля мышления, закрепление навыков параллельного программирования должны происходить при дальнейшем изучении предметных дисциплин информационного цикла. Параллельные вычисления успешно могут быть реализованы при изучении таких курсов, как «Численные методы», «Исследование операций», «Компьютерное моделирование», «Математическая физика».
Пересмотр содержания этих курсов, применение при их изучении современных технологий программирования позволят поднять уровень предметной подготовки
будущего учителя информатики, продолжат процесс формирования алгоритмического мышления в целом и параллельного стиля мышления как его составляющей в частности.
Таким образом, можно сделать вывод о том, что в процессе изучения технологии параллельного программирования изменяется стиль мышления студентов, который назван параллельным стилем. Указанный способ мышления поддаётся целенаправленному формированию с помощью деятельности студента и преподавателя, спланированной согласно закономерностям развития мышления.
Библиографический список
1. 1)0. п,хин К.А., Пак Н.И. О состоянии графической подготовки учащихся в школе с позиции информационного подхода // Вестник КГТ1У им. В.П. Астафьева. 2011. № 3 (17). Т. 1: Психолого-педагогические науки. С. 74-79 с.
2. Жужжалов В.Е. Интеграция парадигм программирования в курсе информатики // Информатика и образование. 2004. № 10. 32-36 с.
3. Леонтьев А.Н. Деятельность. Сознание. Личность. М.: Смысл; Академия, 2004. 352 с.
4. Мэттсон Т., Чернышев А. Введение в технологии параллельного программирования. 1ЖЬ: http://software.intel.com/ru-ru
5. Нигматулина Э.А., Степанова Т.А. Условия формирования алгоритмической культуры студентов на основе информационного подхода // Вестник КГПУ им. В.П. Астафьева, 2011. № 1.
6. Пак Н.И. Обучение разума как информационный процесс: сб. тезисов Российско-корейской научной конференции, Звенигород, 2011. С. 81—83.
7. Рубинштейн С. Л. Основы общей психологии. СПб.: Питер, 2008. 713 с.