Pull to refresh
40
0
Александр Куклев @akuklev

User

Send message
А не хотите повторить интервью с Алексеем Дмитриевичем Беклемишевым и/или Антоном Вячеславовичем Судниковым? Всё-таки у них уже статья с предварительными результатами экспериментов на установке СМОЛА вышла, интересно послушать неформальную оценку результатов и творческие планы.
Да просто два часа ночи. Спать надо. :-)
Хвостовой он там в gcd. Реализуется goto, значит хвостовой. А он реализуется.
Теперь всё ОК? У меня нынче тяжелый день и поздний час, мог ещё чего-нибудь напортачить. :(
Ну я и тормоз, однако. А хвостовой факториал работает неочевидным образом. Напишу туда алгоритм Эвклида, что ли.
Ой! Поправил. Удивительно, что вы первый заметили. Фантастика. Это проглядел не только я сам и несколько друзей, которых я просил просмотреть статью перед публикацией, но и ещё несколько сотен людей…
Вы про какой абзац? Про этот:
При переходе к асинхронной схемотехнике будет оправдано использование нескольких десятков управляющих блоков и нескольких сотен операционных блоков. Такой переход вместе с соответствующим увеличением числа блоков обеспечит увеличение пиковой производительности более чем на два порядка и средней производительности более чем на порядок.
Если так, то где же тут описание Larrabee? Larrabee это конкретная архитектура с весьма специфическими свойствами, навроде кешекогерентности, совершенно определённого подхода к организации конвейера и т.д. У меня об этом ничего н сказано (какое может быть один в один описание?), а написаны общие вещи про большое число операционных ядер и блоков. Larrabee далеко не единственная и далеко не первая разработка, направленных в эту сторону. Кроме того, в этом абзаце упомянута асинхронность, которой Larrabee ну никак не планирует обладать.

А про GPGPU в духе CUDA и OpenCL у меня написано отдельно. Впрочем я по GPGPU совсем не эксперт, я пользуюсь университетскими Nvidia Tesla только через Matlab для отдельных численных расчётов, а непосредственно на CUDA пока ничего серьёзного не писал.
сам эффект «одновременного» движения электронов, т.е. передачи сигнала с максимальной скоростью, и есть квантовый эффект. Или я действительно путаю?

Скорее всего путаете. Смотрите, электроны это такие точечные заряды q = e. Электрическое поле действует на них с силой F = qE. Это самое поле это градиент потенциала. Если на проводник не подано напряжения, то разность потенциалов у его концов ноль, градиент потенциала всюду нулевой, на электроны не действует сила поля.

Теперь возьмём батарейку и замкнём один её контакт на заземление. Что такое батарейка? Это насос, который качает электроны. Батарейка создаёт разность потенциалов в пять вольт, значит на заземлённом контакте остался потенциал ноль, а на втором возник потенциал в плюс или минус пять вольт, в зависимости от того какой контакт мы заземлили. Удобнее заземлить положительный. Тогда получится, что батарейка накачала из земли в отрицательный контакт определённый излишек электронов.
Если провести аналогию с водным насосом, то батарейка на пять вольт это насос, который может создать разницу столба воды в пять метров. Один шланг насоса мы поместили в колодец (заземление), другой в вертикальный резервуар (выходная клемма батарейки). В ней собралось пять метров воды в высоту, насос работает, но уровень выше не поднимается.

Теперь возьмём и соединим с этими контактами наш проводник. С того конца, где ноль, ничего не изменилось. А вот как только мы соединим отрицательный контакт с проводником, по проводнику (от тамошнего излишка электронов) начнёт распространятся электрическое поле, отгоняющее электроны в проводнике подальше от излишка электронов на выходной клемме батарейки. Поле распространяется со скоростью света. Соответственно, как только до электрона в проводнике дойдёт «волна» изменения электромагнитного поля, он начнёт двигаться.
скорость электронов в проводнике очень низкая
Дело не в том, какая там скорость. Дело в том, что когда заряды начинают двигаться ускоренно (ускоряются или замедляются), они начинают излучать. Суммарный эффект этого являения выражается в т.н. индуктивных и ёмкостных потерях. См. //ru.wikipedia.org/Реактивное сопротивление. Эти потери составляют > 95% энергопотребления современных процессоров. Остальные < 5% это обычные омические потери W = U²/R. На процессоре, в котором течёт только постоянный ток, а информацию несёт поляризация тока, остаются только ти потеи. В графене, где подвижность электронов огромна, напряжение это может быть очень мало, а соответственно очень низким может быть энергопотребление.

кол-во электронов особой роли не играет
Я вас не понял. Количество электронов, которые разгоняются и останавливаются, зависит от свойств проводника, это в точности те электроны, которые пребывают в зоне проводимости. Их количество безусловно играет роль в потерях. Потери в точности пропорциональны их количеству по формуле Друде.

это квантовый эффект и все электроны начинают двигаться почти одновременно
Так-так-так. Что они начинают двигаться почти одновременно с точностью до скорости света — это действительно так и вытекает из классической электродинамики. Где именно тут квантовый эффект? Мне в самом деле интересно, потому что квантовая теория поля — область моей профессиональной деятельности. :-)
Спасибо, исправил. Если ещё что заметите, незамедлительно сообщайте!
отдельные операции вроде mul/imul — все это последствия экономии памяти, которая сейчас не так актуальна.
В том-то и дела, что не памяти, а времени. Нам нужно беззнаковое умножение, чтобы реализовать бысторое умножение BigInt'ов. В плане схемотехники это минимальный overhead, знаковые и беззнаковые операции сложения, вычитания и умножения выполняются одними и теми же операционными блоками, причём если мы откажемся от беззнакового варианта, мы выиграем всего 3-4% в количестве транзисторов в этих блоках. А выигрыш в скорости работы BigInt'ов за счёт существования этих операций — в некоторых случаях двукратное ускориение.
Электронная реализация симметрического переключателя затратна, потому я и написал выше «к сожалению, симметрические переключатели становятся привлекательными лишь при использовании спинтроники или фотонной логики. Электроника обречена использовать обычные транзисторы.»

Однако есть основания полагать, что в случае спинтроники их можно будет сделать очень компактными. Представте себе следующую картинку: есть две входящие дорожки, они смыкаются как буква V. Есть две выходящие дорожки, они расходятся как перевёрнутая буква V. Теперь представьте себе, что бы повернули одну из них относительно вертикальной оси на девяносто градусов. V осталась как была, а перевёрнутую её копию мы повернули боком, она выглядит как I. Если их сомкнуть через одну специальную хиральную молекулу, то можно достигнуть того, чтобы входящие потоки электронов этой молекулой поворачивались по часовой стрелки на девяносто градусов и выходили в выходящие дорожки так, что левая входящая выходит в левую выходящую, а правая входящая выходит в правую входящую. Если же взять левовращающий вариант той же хиральной молекулы, потоки будут поворачиваться в против часовой и соединение будет обратным: левая входящая в правую выходящую, правая входящая в левую выходящую. Так вот, выходит что существуют такие молекулы, киральность которых мы можем контролировать спином проходящего через них тока. Если удастся собрать такое устройство на практике, это будет одномолекулярный симметрический переключатель.

Информация у меня от одного из участников группы профессора Мюнценберга, они занимаются спинтроникой у нас в университете: www.uni-goettingen.de/de/202244.html.
Подпишусь под каждым словом. Вместо Си, кстати, разработан язык аналогичной направленности, но лишённый сишных недостатков. Он называется С-- и разработан как своего рода универсальный ассемблер специально в качестве бекенда для компиляторов функциональных языков (GHC, если быть точным). Это прекрасный язык, я на нём писал и я его всячески рекоммендую.

Очень советую почитать его спецификацию и статьи по нему на сайте www.cminusminus.org/. Мои рассуждения на эту тему, правда ещё в несколько неоформленном виде, я записал на kuklev.com/blog/ctt/. Планировал со временем оформить это в полноценную статью и тоже поделиться. Я там пишу кроме прочего про Cyclone, использующий превосходную модель аллокации памяти.

Кстати, про вменяемую альтернативу С++. Есть Scala. Она не чисто функциональная, но умеючи на ней можно писать в чисто-функциональном стиле. Сейчас она работает под JVM, но в перспективе её можно и нужно транслировать, например, в тот же C--.
Высокоровневые языки программирования могут запросто отказаться. Некоторые уже и отказались. А вот на уровне ассемблера такое разделение очень и очень удобно. Дело в том, что есть практическая необходимость работать с целыми числами произвольной длины, а алгоритмы для работы с такими числами реализуются значительно эффективнее, если у нас есть набор ассемблерных команд как для целых, так и для беззнаковых чисел. За деталями, опять же, советую обратиться к книжкам Дональда Кнута. Я на вскидку не помню, первый это том или второй, но где-то он детально описывает, как реализовывать BigInt-библиотеку наиболее эффективно.
Я, конечно же, читал этот пресс-релиз IBM — они пишет о графене, как о полупроводниковом материале для транзисторов. Это относится к классической электронике. А я пишу о применении графена в спинтронике, и их рассуждения о полупроводниковых недостатках графена не имеют никакого отношения к тому, о чём пишу я.
Не знаю, вот честно не знаю. Я бы очень приветствовал такое нововведение.
В общих чертах — именно аналог. Но в деталях гораздо более развит. Характерный пример — наличие операций Иверсона — матричных OR и XOR. Эти операции очень просто реализуются в железе, однако ни в одной распространённой на сегодняшний день архитектуре не задействованы. При этом у них забубенный потенциал, см. //www-cs-faculty.stanford.edu/~uno/mmix-doc.ps.gz. Таких мелочей там уйма.

Information

Rating
Does not participate
Location
Niedersachsen, Германия
Date of birth
Registered
Activity