LINUX.ORG.RU

Язык для обучения программированию


1

7

Понятно, что Java - наверное самый мэйнстрим на текущий момент, ну с C#(Mono)(я не рассматриваю здесь пыхпых, джаваскрипт и прочий веб), но мне известна(как и большинству местных) статья, что изучение с Явы вредно для мозгов.
И вот, столкнувшись с тем, что отданные под моё руководство студенты 3го курса не сильно способны заниматься программированием на С++, задумался, как решить эту проблему, избегая 2х тупиков - делать всё за них, и выгнать их.
Допуская, что производительность языка не нужна(хотя, ввиду того, что делаем мы в основном числодробилки, это очень сильно допущение) и вообще у нас под рукой кластер, какой язык посоветует ЛОР, помогающий развить мозг молодых учёных до уровня С/С++? Да и вообще, список годных для обучения, и негодных соответственно. Думал было python, но тем не в нём производительность недостаточная, а самому реализовывать затратные вещи на С пока не хочется.
Update: vb и delphi не Ъ ввиду того, что я то под линуксом сижу. Update 2: всё, наработанное за время использование предложенного языка, не хочется терять, поэтому хорошо бы, если б можно было соединять уже готовые вещи с C/C++. Насчёт pascal я просто никогда такого не желал, там такое есть?

★★★★

Последнее исправление: aptyp (всего исправлений: 2)
Ответ на: комментарий от AIv

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

marat2345
()
Ответ на: комментарий от marat2345

Ну хорошо если Вас это на что то натолкнуло. Вообще удивительное дело - скока раз я видел как разные авторы ходят вокруг и около, но до асинхронности как то никто не доходил, хотя оставалось совсем чуть... хотя аффтор говорит у кого то что то было в 80х. LR на самом деле не самоцель а один из способов организовать вычисления эффективно, так что бы код автоматом подстраивался под разные архитектуры. Причем выясняется что в LR многие вещи оказываются куда проще чем в традиционном, но это надо вывихнуть мосг... инертность мышления.

Пока болтал поймал таки сегфолт;-)

AIv ★★★★★
()
Ответ на: комментарий от AIv

а если я измельчу шаг , а рядом еще одна гадость - опять мельчить ? когда надо остановиться? потом окажется что везде по области надо синхронизировать время. реальные задачи они такие

marat2345
()
Ответ на: комментарий от marat2345

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

Смеетесь? LRnLA уже идеологически на нерегулярные сетки хреново ложится (если только на адаптивно-рекурсивные). А уж про реализацию я помолчу...

Вот в НГ буду писать LR контейнер для ячеек переменной длины, устрою пир духа, а то все руки не доходят;-)

AIv ★★★★★
()
Ответ на: комментарий от marat2345

а если я измельчу шаг , а рядом еще одна гадость - опять мельчить ? когда надо остановиться? потом окажется что везде по области надо синхронизировать время. реальные задачи они такие

Если надо мельчить (по ур. сост скорость то ясна наверное?) то надо мельчить. Но мельчить локально, время само синхронизируется.. шаг мельчится как 2^n, рекурсивно;-)

AIv ★★★★★
()
Ответ на: комментарий от AIv

LR конечно использовать не у нас не на западе не будут. не потому что он плох а потому что есть более общая схема - событийное программирование. Сейчас никто не будет оптимизировадь одноядерную производительность. Нелезить в кэш - увеличиваем кол-во ядер. Самый простые схемы распарраллеливания для НДСи ГД дают 50-60% эффективности на 1000 ядер. Для ГД и НДС LR врятли увеличит профит. а вот асинхроная огранизация вычислений может дать прирост до 70-80% на 10000, поскольку пропускная способность сети небезгранична. И вот здесь пропаганда LR конечно хороша. Но пропаганда Идея аснхронности а не LR.

marat2345
()
Ответ на: комментарий от marat2345

Самый простые схемы распарраллеливания для НДСи ГД дают 50-60% эффективности на 1000 ядер.

Брехня. 50-60% получаются как (скорость счета на N узлов)/( скорость счета на одном узле * N)? Это простите фуфло, а не оценка эффективности.

AIv ★★★★★
()
Ответ на: комментарий от marat2345

Вот щас все бредят экзофлопсами. Вы в курсе, что LRnLA позволяет спокойно считать задачи к-е собираются на экзофлопсах на уже существующих мощностях? Не говоря про то, что комп время денег стоит... 3D сейсмику ту же можно тупо считать на кластерах (народ считает). Но что бы ее на поток поставить... немного другая песня, это нерентабельно оказывается.

AIv ★★★★★
()
Ответ на: комментарий от AIv

ты когда на кластере инструментальными средствами, которые отслеживают и протоколируют засечки по времени вызовы MPI и загруженность CPU будешь работать. тогда и будешь оперировать определением эффективности. я пишу тебе про реальную эффективность (= Время счета на CPU/Суммарному времени )программных кодов на реальном а не идеальном кластере. на большое число узлов.

marat2345
()
Ответ на: комментарий от marat2345

Йпрст, опять рИальная, на этот раз эффективность... Вот тебе тогда рИальная цифра - твой кластер с туевой хучей ядер в 10 раз хуже персоналки. Эффективность 10% а не 50%. Доволен? МВС1000 - рИальный кластер? Эффективность распараллеивания 100 (СТО) процентов до 1000 узлов, это было в 2000 каком то там лохматом году, уже и не вспомню.

РИальная эффективность использования нонешних кластеров проценты в самом лучшем случае. Иначе бы чуваки с ПЛИСками так не гордились собой.

AIv ★★★★★
()
Ответ на: комментарий от marat2345

LR считает на нерегулярках ? нет. сейчас все промышленно-значимые задачи на нерегулярках.

Они на нерегулярках считают по бедности (и из за гранусловий) - кэш не резиновый... LRnLA может считать аналогичные задачи на регулярных сетках гораздо быстрее чем нонешние коды на нерегулярках. Причем скачок не количественный. а качественный, диалектика...

AIv ★★★★★
()
Ответ на: комментарий от AIv

100% это миф. Эффективность = ПолезнаяРабота/ОбщаяРабота.

на ПК вы АЭС не посчитаешь а если посчитаешь то результаты получат ваши правнуки. в ПЛИС какую матетматику можно вбить? а если уравнения состояния меняются каждый день, константы меняются?

метод монте-карло хорошо параллелится. МД хорошо параллелится. НДС с контактом плохо. всегда есть потери. потери на MPI как алгоритмические так аппаратные есть всегда.

marat2345
()
Ответ на: комментарий от AIv

В минус - сложность реализации LRnLA. В плюс - не надо морочится с нерегулярной сеткой. Что в итоге лучше зависит от задачи, доступного железа и еще кучи факторов. Но повторюсь, задач с регулярными сетками (промышленно значимых) такая туева хуча, что мне за всю жизнь не перерешать...

AIv ★★★★★
()
Ответ на: комментарий от AIv

какие гранусловия на нерегулярках отличаются от регулярок? ГУ накладываюся на грани ячеек, на узлы ячеек. То и то есть на нерег и в рег. Регулярка в 10-100 мельчее сетка чем в нерегулярках. зачем ??? вы сами сетку строить будете?

marat2345
()
Ответ на: комментарий от AIv

вы всем пропагандируете LR - молодец, идею асинхронности в массы. А если ваши пилюли не помогут и пациент умрет? может проще лечить простуду ? :)

marat2345
()
Ответ на: комментарий от marat2345

100% это реально полученная цифра. Хорошо, 99.9 - так лучше?

на старых ПК мы считаем 10^9 ячеек. Поскольку тесп счета не зависит от размера задачи... ну ты понял.

Про монте-карло и МД я писал не раз - там LRnLA не нужен. Хотя для МД с дробдением шага может и понадобится...

Про потери - это не дизель же... все опредляется узким местом. Если узкое место обмены - упрешься в обмены. Сейчас для 90% задач узкими местами являются пропускная способность памяти и обмены между узлами. LRnLA позволяет эти узкие места убрать, никаких чудес нету. Профит в порядки как бы не с потолка взят...

про кластер - ты не думал, что при распаралеливании скорость счета должна расти сверхлинейно, поскольку уменьшаются потери на одном узле из за лучшей кэшируемости данных (на узел меньше данных)? Вот и оцени ка рИальную эффективность по флопсам...

AIv ★★★★★
()
Ответ на: комментарий от AIv

я вам уже написал реализуйте схему для теплопроводности -увидите все слабые места LR. освойте какойнибудь пакет типа Ansys,Abaqus посмотрите что такое нерегулярная сетка. и почему на ней считают(совсем не от бедности)

marat2345
()
Ответ на: комментарий от marat2345

Нерегулярку ты можешь выгнуть по физической границе (что бы граница шла по граням). С регуляркой это куда сложнее...

AIv ★★★★★
()
Ответ на: комментарий от AIv

и 99,99% тоже не верю. если это только 1 процессор либо не задача нетребующая декомпозиции и синхронизации данных :) Кол-во ячеек на процессор конечно падает, но возрастает кол-во ячеек для которых необходимо синхронизировать данные между процессорами. Это как в наноматериалах, 90% атомов в границах зерен сидят. Поэтому линейный рост невозможен. Плюс аппаратные ограничения + другие пользователи забивают сеть своими данными +...

marat2345
()
Ответ на: комментарий от marat2345

Я про лангранжа-эйлера вообще ни слова не говорил. Та ГД к-ю я считал - считалась на эйлеровых сетках.

Кол-во ячеек на процессор конечно падает, но возрастает кол-во ячеек для которых необходимо синхронизировать данные между процессорами.

Вера это ключевое... тем не менее, рекомендую подумать чуток. Компьюетр все же параллельная система, да;-) Если время пересылок больше времени счета - затык. Если меньше - затык пренебрежимо мал.

AIv ★★★★★
()
Ответ на: комментарий от marat2345

90% атомов в границах зерен сидят

Во-во. Поэтому при трад методах насыщение есть всегда. Теперь рисуем пирамидку LRnLA... и вспоминаем школу, объем (кол-во вычислений) растет быстрее чем поверхность (число обменов). Для дост большой пирамидки обменов будет меньше чем вычислений...

AIv ★★★★★
()
Ответ на: комментарий от AIv

возвращаемся к вопросу о кол-ве пересылаемых данных на 1 ячейку для разных физпроцессов и схем распаралеливания. для НДС одни значения для ГД другие для теплопроводности третьи. когда реализуете LR для НДС или ГД. думаю премию правительства получите. без шуток. а пока неверю я в живительную силу LR, C++...

marat2345
()
Ответ на: комментарий от AIv

пирамида LR возможна при одинаковом фиксированном шаге по времени. Ansys,Abaqus,LS_Dyna... с радостью схватились бы за LR да вот чтото в новых версиях нет ничего такого.

marat2345
()
Ответ на: комментарий от marat2345

Все правильно, и ГД и НДС с этой точки зрения гораздо лучше максвелла - там куда больше вычислений на единицу данных. А самое хреновое это теплопроводность (схема простая, шаблон отн. широкий). Поэтому мы за них пока и не брались, и профиль не наш (у нас никто в этих областях и не работал толком, я тока чуток), и схемы сложные.

AIv ★★★★★
()
Ответ на: комментарий от AIv

если бы работало LR в ГД,НДС... этобы было супер-пупер конкурентное преимущество. вы бы с науч.руком на бугати ездили.

marat2345
()
Ответ на: комментарий от marat2345

Уффф... про коммерческий софт я писал уже. Там цели ну совсем другие, никто в злавом уме думаю на насисие что то архисложное не считает (вы же не считаете?). Там важна гибкость и простота использования, а эти вещи с топовой производительностью слабо вяжутся.

AIv ★★★★★
()
Ответ на: комментарий от KRoN73

Так вот, было сказано, что математика сама по себе, оторванная от иных дисциплин, пользы не приносит.

Никакая наука сама по себе не приносит пользы. Чистая математика не приносит пользы отрыве от прикладной. Прикладная - в отрыве от, например, теоретической физики. Теоретическая физика - в отрыве от экспериментальной. Экспериментальная - в отрыве от инженерных дисциплин. Инженерные дисциплины - в отрыве от процесса производства. Процесс производства - в отрыве от произведенных вещей. Произведенные вещи - в отрыве от использования их человеком.

anonymous
()
Ответ на: комментарий от AIv

у них очень хорошая производительность. они хорошо оптимизируют алгоритмы и обновляют схемы распараллеливания. просто в россии мало контор которые умеет использовать ансис. в основном студенты-троечники. все толковые забугром.

marat2345
()
Ответ на: комментарий от marat2345

Вы наивны как ребенок. У нас супер-пупер конкурентное преимущество в сейсмике, уже не первый год, и все заинтересованные люди в РФ об этом знают, в т.ч. и в роснефти.

Где там мое бугатти, не поцарапал ли его дворник лопатой? А, оно не мое же... В этой стране никому ничего как не надо, кроме неск сумасшедших энтузиастов. Но у них увы денег мало...

AIv ★★★★★
()
Ответ на: комментарий от marat2345

так зачем везде про LR кричать как о панацее ???

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

AIv ★★★★★
()
Ответ на: комментарий от AIv

денег мало - значит товар ваш не нужен. кто у нас занимается созданием кода для роснефти ездит на ауди q5. значит его товар нужен. а там все просто: декомпозиция данных + MPI + СЛАУ. и все синхронно.

marat2345
()
Ответ на: комментарий от AIv

для ГД на регулярной сетки без ударных волн возможно - но такие задачи никому неинтересны. Для остальной ГД и НДС к сожалению нет.

marat2345
()
Ответ на: комментарий от marat2345

Денег мало не у нас конкретно а у нагших заказчиков. Котрые на роснефть кстати тоже работают как то...

Ладно, времени много, а у меня опять сегфолт.

AIv ★★★★★
()
Ответ на: комментарий от marat2345

денег мало - значит товар ваш не нужен

Вы к какому врачу пойдете, у кого машина круче или кто лечит лучше? У нас это слабо коррелирует, причем во всех областях.

AIv ★★★★★
()
Ответ на: комментарий от AIv

приежайте на международный семинар «Супервычисления и математическое моделирование»

marat2345
()
Ответ на: комментарий от jtootf

Жаль, просто натыкался в жуике на посты, связанные с чистой математикой, каждый второй пост о ней практически.

aptyp ★★★★
() автор топика
Ответ на: комментарий от Miguel

Но даже если мы добавим некий тег, чтобы отличать их — никто не помешает, например, сделать этот «список», скажем, циклическим.

А если так. Пишешь объявления функций в интерфейсе (.h) - конструкторы, деструкторы, геттеры, сеттеры (сеттер не может сделать список циклическим). Тогда все остальные функции про списки реализуются на основе этого интерфейса. Саму структуру и функции пишешь в реализации (.c) исключая доступа извне.

В общем, если сделать грамотный интерфейс и в использовании от него не отступать, то будут настоящие финитные и линейные связные списки.

quasimoto ★★★★
()
Ответ на: комментарий от anonymous

Как для типа data Nat = Zero | Succ Nat, так и для типа Nat = Zero | Succ !Nat бесконечность (f = Succ f) будет натуральным числом. Не бывает в хаскеле индуктивных типов, ну нет их :)

В случае с Nat = Zero | Succ !Nat «бесконечность» (f = Succ f) — это не бесконечность, а жопа. Попробуй применить к ней хотя бы isZero какой-нибудь.

anonymous
()

Я сестре за 4 месяца экскурс в Си привёл - теперь она радуется и использует в лабах всякие GUI, GStreamer`ы и иже и ним по принципу аналогии с экзамплами и т.д. Зато понимает, что это уже что-то реальное, да и в универе поднялась резко в программировании. Ничего сложного и руки в паскале не надо марать.

Grid_Sergey
()
Ответ на: комментарий от Grid_Sergey

Четырёх месяцев нет, нужно сдавать диплом уже.

aptyp ★★★★
() автор топика

Госпади, python !

У самого на 1-м курсе был паскаль и делфи, после чего я ненавидел P и TP лютой ненавистью. Сейчас вроде отшло, только презрение к паскалю осталось.

Python вменили на 2-м курсе по инициативе одного препода, оч прогрессивного над сказать. Этот язык достаточно прост в освоении и достаточно функционален с точки зрения его жизненного применения. Он как раз позволяет не обращать внимания на такие 'мелочи' (конечно же в рамках ваших проектов), как выделение памяти, указатели и пр. И, надо сказать, есть много примеров программ, чтобы привести, написанных как на чистом пайтоне, так и с его использованием. Обещаю, это действует на привлечение аудитории.

P.S. Главное - заинтересовать студента. Если будет интерес - будут и знания, так как нет другого пути к познанию, кроме как самостоятельная работа.

markontheboard
()

Для математиков SAGE с python-like синтаксисом подойдет.
Но это для смешанных символических и численных вычислений вот пример, что я там кодил — символические расчеты, метод Боголюбова получения асимптот. приближения нелинейных ДУ в нескольких частных случаях:

http://sagenb.org/home/pub/3743/
(формулы рисуются с помощью jsMath, т.е. надо не шибко старый web-browser) там много текста, но используется простое интегрирование, дифференцирование, сумма функций в списке и т.д.
Ответы получаются в виде функций, которые можно так и оставить с «формула» с символическими переменными, а можно и посчитать.

blinkenlichten
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.