Code Monkey home page Code Monkey logo

super-comps-course-work's Introduction

Course work for 8th semester on discipline "Supecomputers usage"

2nd task variant

Possible output

Описание работы

Реализован традиционный алгоритм перемножения матриц. Реализован алгоритм перемножения матриц с транспонированием, что обеспечивает более эффективное использование памяти за счёт кеширования. Как видно, транспонирование имеет смысл и действительно ускоряет получение результата.

Реализован алгоритм блочного перемножения. Оптимальным вариантом оказалось разбиение на блоки размером корня квадратного, тем не менее выигрыш на матрицах произвольного размера всё равно очень мал.

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

В целях дальнейшего ускорения реализован алгоритм Штрассена, имеющий лучшую асимптотику добавлено распараллеливание традиционного алгоритма.

Вопросы

1 Почему подсистема памяти современных ЭВМ называется многоуровневой?

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

2 Какие уровни памяти Вы знаете?

Уровни памяти, которые я знаю, включают в себя:

  • Регистры процессора
  • Кэш-память (причём из 3 уровней)
  • Оперативная память (RAM)
  • Внешняя память (например, жесткие диски, SSD)

3 Каковы принципы построения и основные характеристики каждого уровня?

Принципы построения и основные характеристики каждого уровня:

  • Регистры процессора: Быстрая доступная память, непосредственно связанная с процессором. Обычно имеют небольшой объем и используются для хранения данных, к которым нужен быстрый доступ.
- Размер регистров общего назначения обычно 64 бита в современных процессорах.
- Скорость доступа к регистрам процессора очень высокая, обычно составляет всего один цикл процессора или даже менее.
  • Кэш-память: Память более высокого уровня, расположенная между регистрами и оперативной памятью. Она имеет более высокую скорость доступа по сравнению с оперативной памятью и используется для временного хранения данных, которые часто запрашиваются процессором.
Уровни кэша на процессоре обычно классифицируются как L1, L2 и L3. Размеры и скорость доступа к данным для каждого уровня могут различаться в зависимости от конкретной архитектуры процессора.

L1 Cache:
- Размер: Обычно от нескольких десятков килобайт до нескольких сотен килобайт.
- Скорость доступа: Очень высокая, обычно в пределах нескольких циклов процессора.
L2 Cache:
- Размер: Обычно от нескольких сотен килобайт до нескольких мегабайт.
- Скорость доступа: Скорость доступа к L2 кэшу обычно немного медленнее, чем к L1 кэшу, но все равно очень быстрая, обычно в пределах нескольких циклов процессора.
L3 Cache:
- Размер: Обычно от нескольких мегабайт до десятков мегабайт или даже сотен мегабайт, в зависимости от конкретной архитектуры процессора.
- Скорость доступа: Скорость доступа к L3 кэшу может быть чуть медленнее, чем к L1 и L2 кэшам, но по-прежнему очень быстрая, обычно в пределах десятков циклов процессора.
  • Оперативная память (RAM): Основная память компьютера, используемая для хранения данных и программ во время их выполнения. Насколько знаю, один int считывается за 100 наносекунд.
  • Внешняя память: Хранилище данных на постоянной основе, такое как жесткие диски или SSD.

4 Что такое ассоциативность кэша?

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

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

Проблема когерентности кэшей возникает, когда два или более кэша содержат копии одних и тех же данных и один из них изменяется. Это может привести к несогласованности данных между кэшами, что может привести к ошибкам в программном обеспечении. Способы обеспечения когерентности кэшей включают использование протоколов когерентности кэша, таких как MESI (Modified, Exclusive, Shared, Invalid), которые контролируют доступ к данным и управляют их обновлением и инвалидацией между кэшами. Преимущества включают повышение производительности за счет снижения нагрузки на память, но есть и недостатки, такие как увеличение сложности системы и возможное снижение производительности из-за накладных расходов на управление когерентностью.

super-comps-course-work's People

Contributors

ioann44 avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.