پادکست انگلیسی سطح C1, C2 معرفی کنیم تو کانال، یا نه؟
Anonymous Poll
78%
موافقم، منابع توسعه مهارت های انگلیسی هم بزار🍺
4%
نه، همینطوری خوبه🤌🏿
18%
برام مهم نیست✨
👍6❤1
🔥6👎3
گربه شرودینگر: زنده یا مرده؟
فرض کنید یک گربه داخل یک جعبه است، همراه با یک مکانیزم خطرناک که به شکل تصادفی عمل میکند، مثلا یک اتم رادیواکتیو:
اگر اتم واپاشی کند → مکانیزم فعال میشود → گربه کشته میشود.
اگر اتم واپاشی نکند → گربه زنده میماند.
طبق قوانین مکانیک کوانتومی، تا وقتی جعبه را باز نکنیم و نگاه نکنیم، گربه نه زنده است نه مرده، بلکه در یک حالت ترکیبی از زنده و مرده (ابرپوزیشن) قرار دارد:
این آزمایش فکری نشان میدهد که قوانین عجیب مکانیک کوانتومی، وقتی روی اشیای بزرگ اعمال شوند، نتایج غیرمنتظره و فلسفی میدهند.
پیام شرودینگر: هدفش اثبات نبود، بلکه نشان دادن پارادوکس ابرپوزیشن و نقش مشاهدهگر بود.
دنیای ذرات کوچک و بزرگ متفاوت عمل میکند، و ما هرگز گربهای همزمان زنده و مرده نمیبینیم، چون با محیط تعامل دارد و حالت ابرپوزیشن سریع «میریزد» (decoherence).
https://youtu.be/UjaAxUO6-Uw?si=insQYBA4dRBOMHD6
https://youtu.be/uVKMY-WTrVo?si=GmZC3ApbkB5DbMHK
فرض کنید یک گربه داخل یک جعبه است، همراه با یک مکانیزم خطرناک که به شکل تصادفی عمل میکند، مثلا یک اتم رادیواکتیو:
اگر اتم واپاشی کند → مکانیزم فعال میشود → گربه کشته میشود.
اگر اتم واپاشی نکند → گربه زنده میماند.
طبق قوانین مکانیک کوانتومی، تا وقتی جعبه را باز نکنیم و نگاه نکنیم، گربه نه زنده است نه مرده، بلکه در یک حالت ترکیبی از زنده و مرده (ابرپوزیشن) قرار دارد:
این آزمایش فکری نشان میدهد که قوانین عجیب مکانیک کوانتومی، وقتی روی اشیای بزرگ اعمال شوند، نتایج غیرمنتظره و فلسفی میدهند.
پیام شرودینگر: هدفش اثبات نبود، بلکه نشان دادن پارادوکس ابرپوزیشن و نقش مشاهدهگر بود.
دنیای ذرات کوچک و بزرگ متفاوت عمل میکند، و ما هرگز گربهای همزمان زنده و مرده نمیبینیم، چون با محیط تعامل دارد و حالت ابرپوزیشن سریع «میریزد» (decoherence).
https://youtu.be/UjaAxUO6-Uw?si=insQYBA4dRBOMHD6
https://youtu.be/uVKMY-WTrVo?si=GmZC3ApbkB5DbMHK
YouTube
Schrödinger's cat: A thought experiment in quantum mechanics - Chad Orzel
View full lesson: https://ed.ted.com/lessons/schrodinger-s-cat-a-thought-experiment-in-quantum-mechanics-chad-orzel
Austrian physicist Erwin Schrödinger, one of the founders of quantum mechanics, posed this famous question: If you put a cat in a sealed box…
Austrian physicist Erwin Schrödinger, one of the founders of quantum mechanics, posed this famous question: If you put a cat in a sealed box…
🗿5
زبانی که Jonathan ساخته (Jai) میگه که همه چی complied time هست و runtime polymorphism نداریم =)
https://youtu.be/i6KVMGT5kRE?si=XFjkw-4_59Sjn73Y
درکل خود شخص جاناتان دیدگاه جالبی داره. دیدن ویدیو هاشو پیشنهاد میکنم.
https://youtu.be/i6KVMGT5kRE?si=XFjkw-4_59Sjn73Y
درکل خود شخص جاناتان دیدگاه جالبی داره. دیدن ویدیو هاشو پیشنهاد میکنم.
YouTube
Jonathan Blow on the Design of Jai
Support me on Ko-fi: https://ko-fi.com/jonathanblowclips
Jonathan Blow on the Design of Jai
Clip from Jonathan Blow
Original: https://www.youtube.com/watch?v=7BaWley751Y
Twitch: https://twitch.tv/j_blow
YouTube: https://www.youtube.com/@jblow888
#jonathanblow…
Jonathan Blow on the Design of Jai
Clip from Jonathan Blow
Original: https://www.youtube.com/watch?v=7BaWley751Y
Twitch: https://twitch.tv/j_blow
YouTube: https://www.youtube.com/@jblow888
#jonathanblow…
👾3
About SOA & AOS [Memory Layout]
https://youtu.be/YGTZr6bmNmk?si=Y9wKpc3IW3BvfmO5
https://youtu.be/ghawCl8YW6E?si=ELa0Ah_k7h_sxFZ0
پ.ن: اوضاع به شدت خیطه🦖
https://youtu.be/YGTZr6bmNmk?si=Y9wKpc3IW3BvfmO5
https://youtu.be/ghawCl8YW6E?si=ELa0Ah_k7h_sxFZ0
پ.ن: اوضاع به شدت خیطه🦖
YouTube
Discussion of SIMD, SOA, AOSOA. Followed by Questions & Answers.
The first programming related to this discussion is in this video: https://youtu.be/zgoqZtu15kI
👾4
C++ بد بود و با استاندارد 26 بدتر هم شده
https://isocpp.org/files/papers/P2996R4.html#emulating-typeful-reflection
کلا طرز فکر ++c گرایش خاصی به ساختن پیچیدگی داره |: صد رحمت به Rust و Zig. حداقل ترید آف ش منطقی تره
https://isocpp.org/files/papers/P2996R4.html#emulating-typeful-reflection
template <class... Tags>
consteval auto make_named_tuple(std::meta::info type, Tags... tags) {
std::vector<std::meta::info> nsdms;
auto f = [&]<class Tag>(Tag tag){
nsdms.push_back(data_member_spec(
dealias(^typename Tag::type),
{.name=Tag::name()}));
};
(f(tags), ...);
return define_class(type, nsdms);
}
کلا طرز فکر ++c گرایش خاصی به ساختن پیچیدگی داره |: صد رحمت به Rust و Zig. حداقل ترید آف ش منطقی تره
👍6😱1
SuperCompilers
https://github.com/hirrolot/mazeppa
https://stanleymiracle.github.io/blogs/org/docs/supercompiler.pdf
پ.ن: اوضاع خیلی خیلی خیطه
https://github.com/hirrolot/mazeppa
https://stanleymiracle.github.io/blogs/org/docs/supercompiler.pdf
پ.ن: اوضاع خیلی خیلی خیطه
GitHub
GitHub - hirrolot/mazeppa: A modern supercompiler for call-by-value functional languages
A modern supercompiler for call-by-value functional languages - hirrolot/mazeppa
Polyhedral Model
Part 1:
https://www.youtube.com/watch?v=_TFrPGV_A-s
Part 2:
https://www.youtube.com/watch?v=irqg3L5Xpqk
Part 3:
https://www.youtube.com/watch?v=6WkIzH8LyGY
پارت های دیگه هم داره اگر علاقه مند بودید میتونید ببینید|:
فعلا نظرم اینه که اوضاع 1000x-خیلی خیطه!
Part 1:
https://www.youtube.com/watch?v=_TFrPGV_A-s
Part 2:
https://www.youtube.com/watch?v=irqg3L5Xpqk
Part 3:
https://www.youtube.com/watch?v=6WkIzH8LyGY
پارت های دیگه هم داره اگر علاقه مند بودید میتونید ببینید|:
فعلا نظرم اینه که اوضاع 1000x-خیلی خیطه!
YouTube
The Polyhedral Model Part 1: An Intuitive Example
This is a slight re-do of a talk I gave to Fred Kjolstad and Pat Hanrahan's CS343D course at Stanford University.
نظری برا این مساله دارید؟ |:
الان مساله دیگه ای که توجهم رو جلب کرده. یک مقاله ای داشتم میخوندم راجب اینکه چطور میشود n-dimension loop رو روی معماری multiprocessor پارالل کرد؟ و خب خیلی خفنه :> میخواستم نظر شمارم بدونم تو این زمینه تا یه جمع بندی داشته باشم راجبش و...
ایده اصلی ش راجب اینه که تسک های مختلف رو بصورت tile (کاشی) در میاره و خیلی سعی میکنه که بین این ها bound هارو پیدا بکنه.
من خودم به Polyhedral Model داشتم فکر میکردم که میتونه تا حدی این کارو انجام بده ولی این اومده یه کار خفن تر کرده. از یه Modified Genetic Algorithm استفاده کردن تا درواقع توی رانتایم سعی میکنه به اصطلاح یادبگیره که سریعترین راه برای محاسبه و پارالل کردن تسک ها چطوریه؟
یه cluster میسازن و نسبت به وظیفه ش (weight ش) و اتصالاتش (یه گراف ساخته میشه ازش درواقع) یه score هم بهش میدیم.
بعد از روی این گرافی که supercompiler میسازه تلاش میشود که سریعترین path رو پیدا کنن و بین processor ها distribute میشه |:
منتها این همش نیست. تا جایی که من متوجه شدم از مقاله ش. بعد ازینکه اجرا میشه (یا شایدم از همون گراف آنالیز میکنه نمیدونم مطمن نیستم...) میاد یک سیستم penalty/reward درست میکنه تا بتونه شایستگی اون path رو مشخص بکنه.
بهش پاداش میده اگر سوپرکامپایلر ببینه که مسیرش bound کمتری دریافت کرده و سریعتر اجرا شده. این پاداشه ینی توی (رجیستری مون یا همون جدول شایستگی که ساختیم score ش افزایش پیدا میکنه و باعث میشه که پایدار تر باشه... ینی احتمالش کمتره که با یه path دیگه جایگزین بشوه).
اگر هم برعکس این باشه جریمه میشه و اولویتش کاهش پیدا میکنه بعنوان مسیر انتخابی.
فکر میکنم این مکانیزم رو LAGA (Learning-based Adaptive Genetic Algorithm) نامیده اند.
اینا چیزایی بود که من تقریبا تونستم از مقاله بفهمم. اینکه واقعا میشه در عمل همچین چیزی پیاده سازی کرد یا نه جای بحث داره.
الان مساله دیگه ای که توجهم رو جلب کرده. یک مقاله ای داشتم میخوندم راجب اینکه چطور میشود n-dimension loop رو روی معماری multiprocessor پارالل کرد؟ و خب خیلی خفنه :> میخواستم نظر شمارم بدونم تو این زمینه تا یه جمع بندی داشته باشم راجبش و...
ایده اصلی ش راجب اینه که تسک های مختلف رو بصورت tile (کاشی) در میاره و خیلی سعی میکنه که بین این ها bound هارو پیدا بکنه.
من خودم به Polyhedral Model داشتم فکر میکردم که میتونه تا حدی این کارو انجام بده ولی این اومده یه کار خفن تر کرده. از یه Modified Genetic Algorithm استفاده کردن تا درواقع توی رانتایم سعی میکنه به اصطلاح یادبگیره که سریعترین راه برای محاسبه و پارالل کردن تسک ها چطوریه؟
یه cluster میسازن و نسبت به وظیفه ش (weight ش) و اتصالاتش (یه گراف ساخته میشه ازش درواقع) یه score هم بهش میدیم.
بعد از روی این گرافی که supercompiler میسازه تلاش میشود که سریعترین path رو پیدا کنن و بین processor ها distribute میشه |:
منتها این همش نیست. تا جایی که من متوجه شدم از مقاله ش. بعد ازینکه اجرا میشه (یا شایدم از همون گراف آنالیز میکنه نمیدونم مطمن نیستم...) میاد یک سیستم penalty/reward درست میکنه تا بتونه شایستگی اون path رو مشخص بکنه.
بهش پاداش میده اگر سوپرکامپایلر ببینه که مسیرش bound کمتری دریافت کرده و سریعتر اجرا شده. این پاداشه ینی توی (رجیستری مون یا همون جدول شایستگی که ساختیم score ش افزایش پیدا میکنه و باعث میشه که پایدار تر باشه... ینی احتمالش کمتره که با یه path دیگه جایگزین بشوه).
اگر هم برعکس این باشه جریمه میشه و اولویتش کاهش پیدا میکنه بعنوان مسیر انتخابی.
فکر میکنم این مکانیزم رو LAGA (Learning-based Adaptive Genetic Algorithm) نامیده اند.
اینا چیزایی بود که من تقریبا تونستم از مقاله بفهمم. اینکه واقعا میشه در عمل همچین چیزی پیاده سازی کرد یا نه جای بحث داره.
👍2💊1