BufWriter<Master<'_>> – Telegram
BufWriter<Master<'_>>
105 subscribers
451 photos
28 videos
34 files
1.7K links
https://www.patreon.com/alxe_master

Видео/статьи. Конспект и мои вольные комментарии по инженерии. тут только то, что считаю полезным для себя или других =)

#os, #cloud, #rust, #golang, #python, #javaScript, #cpp, etc
Download Telegram
Хех. Новый виток изучения радио. Теперь буду играть в физический уровень радио сетей на bpsk
== AximoBot
https://news.1rj.ru/str/aximobot?start=aximo
шикарнейший бот
если надо в телегу присылать чтото из других социалок, например только конкретные подписки из тиктока или ютюба - очень удобно. сразу скачивает видос в телегу. как я жил без него ?!
Forwarded from S0ER
Чем отличается архитектура и декомпозиция?

Преамбула
часто на митингах звучит фраза "а теперь давайте обсудим архитектуру проекта" и далее начинается обсуждение того как нужно правильно разделить программу на классы и каким образом выстроить файловую структуру проекта. На самом деле речь идет не об архитектуре, а о декомпозиции, почему так? Давайте разбираться.

Определения:
Декомпозиция
— операция мышления, состоящая в разделении целого на части. Также декомпозицией называется общий приём, применяемый при решении проблем, состоящий в разделении проблемы на множество частных проблем, а также задач, не превосходящих суммарно по сложности исходную проблему, с помощью объединения решений которых, можно сформировать решение исходной проблемы в целом. (ист. википедия)

Архитектура программного обеспечения — совокупность важнейших решений об организации программной системы. Архитектура включает:

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

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

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

Таким образом, если речь идет о разделении программы на классы (не о выделении интерфейсов, не о распределении обязанностей, не о выработке требований и т.д.), а только о "географическом" размещении файлов и вынесении кода в эти файлы, то это с большим натягом можно отнести к процессу построения архитектуры приложения, но правильнее всего называть "модульная декомпозиция" или "классовая декомпозиция". Архитектуре же строится по принципу "от общего к частному" и начинается со сбора и формирования требований.
Экстремальный_Cи_Параллелизм,_ООП_и_продвинутые_возможности_2021.pdf
7.8 MB
Экстремальный Cи. Параллелизм, ООП и продвинутые возможности
Автор: Камран Амини
Книга научит пользоваться продвинутыми низкоуровневыми возможностями языка для создания эффективных систем.
#c
Forwarded from Блог*
#prog #rust #article

Очередная статья про обработку ошибок в Rust, да. Но полезная: ставит под сомнения и разбирает распространённые мнения об ошибках в Rust. В частности, разбирается совет "anyhow для приложений, thiserror для библиотек".
курс по параллельным алгоритмам, вычислениям на видеокартах

== 1. История видеокарт, введение в OpenCL
https://youtu.be/2_vUxISp7ko

CPU parallelism
- out-of-order optimizations (instruction level parallelism)
- branch predictor
- hyper-treading
- multi-core parallelism
- SIMD intrinsic functions - SSE, SSE2, SSE3 (по 4 числа). AVX, AVX2 (по 8 чисел)

GPU
- vertex shader 9вершины и треугольники)
- fragment shader (пиксели, освещение)

GPGPU API
- closeto metal
- cuda
- openCl
- Metal

GPU
- SIMT instructions

Computation model in OpenCL/Cuda:
- Work space (Height X WIdth)
- Work group
- Work Item
- Kernel (program)

!!! отказ от синхронизации
INTRINSIC FUNCTION

https://en.wikipedia.org/wiki/Intrinsic_function
встроенные функции в процессор, которые доступны из ЯП. используются для оптимизации вычислений или предоставляют какие либо функциональные возможности. например обработка массива данных одной функцией из линейной алгебры. может быть вставлена компилятором автоматически если он видет такую возможность

== Intrinsic Functions - Vector Processing Extensions
https://youtu.be/x9Scb5Mku1g
1512.00168.pdf
866.7 KB
Consistency in Non-Transactional Distributed Storage Systems

про распределенные нетранзакционные системы
Consistency in Non-Transactional Distributed Storage Systems

про распределенные нетранзакционные системы