Alım-satım fırsatlarını kaçırıyorsunuz:
- Ücretsiz alım-satım uygulamaları
- İşlem kopyalama için 8.000'den fazla sinyal
- Finansal piyasaları keşfetmek için ekonomik haberler
Kayıt
Giriş yap
Gizlilik ve Veri Koruma Politikasını ve MQL5.com Kullanım Şartlarını kabul edersiniz
Hesabınız yoksa, lütfen kaydolun
Anlatım 11. Depolama Tahsisi
Anlatım 11. Depolama Tahsisi
Öğretim görevlisi, bu videoda hem bellek ayırmayı hem de boşaltmayı kapsayan depolama ayırmayı tartışıyor. Yığın ve yığının yanı sıra sabit ve değişken boyutlu tahsis şemaları dahil olmak üzere farklı depolama türleri ele alınmaktadır. Dağıtılan bellek bloklarının neden olduğu harici parçalanma, disk sayfası başına boş listeler veya bit eşlemler gibi çözümlerle de tartışılır. Referans sayımı ve bu algoritmanın sınırlamaları da dahil olmak üzere çöp toplama kavramı da tanıtılmaktadır. "İşaretle ve süpür" ve "durdur ve kopyala" çöp toplama prosedürleri de açıklanmakta ve ikincisinin parçalanmayı nasıl ele aldığına ve işaretçi güncellemelerinin neden olduğu olası doğruluk sorununa odaklanılmaktadır. Video, durdurma ve kopyalama algoritmasının zaman ve mekan karmaşıklığı ve harici parçalanmayı ortadan kaldırması üzerine notlarla sona eriyor.
Bu video, Buddy sistemi, işaretleme ve süpürme prosedürleri, optimizasyonlar, nesiller arası ve gerçek zamanlı çöp toplama, çok iş parçacıklı depolama tahsisi ve paralel çöp toplama dahil olmak üzere dinamik depolama tahsisi ile ilgili çeşitli konuları kapsar. Öğretim görevlisi, kuşak çöp toplamanın, daha genç nesnelerin daha sık taranması fikrine dayandığını, gerçek zamanlı çöp toplamanın ise program yürütülürken arka planda çalıştığını, ancak nesne ve işaretçi grafiği sürekli değişirse doğruluk sorunlarına yol açabileceğini açıklıyor. Son olarak ders, yığın ve öbek dahil olmak üzere farklı depolama tahsisi türlerini ve referans sayma, işaretle ve süpür ve durdur ve kopyala gibi farklı çöp toplama yöntemlerini özetler. Öğretim görevlisi, öğrencilerin yaklaşan ev ödevlerinde bu yöntemlerden bazılarını deneyeceklerinden bahseder.
Ders 12. Paralel Depolama Tahsisi
Ders 12. Paralel Depolama Tahsisi
Video, çeşitli bellek ayırma stratejilerini ve bunların değiş tokuşlarını tartışıyor. Malloc ve hizalı ayırmanın kullanımı ve ayrıca ücretsiz ile uygun bellek ayırmanın önemi açıklanır. Harici parçalanma ve yavaş performans sorunlarının yanı sıra sanal bellek tahsisi için Mmap kullanımı da ele alınmaktadır. C ve C++ programlamasındaki yığın kavramı, yığın çerçevelerini tahsis etmek için yığın tabanlı bir kaktüs yığını yaklaşımına vurgu yapılarak araştırılır, bu da daha iyi uzaya bağlı provalara ve üst sınırlara yol açabilir. Parçalanmayı en aza indirmek için küçük blokları optimize etmenin önemi ile birlikte bir doğrusal yığın havuzunun kullanımı da tartışılmaktadır. Video, küresel ve yerel yığın yaklaşımları ve bunların potansiyel sorunlarının yanı sıra bu sorunları ele almak için deposuz listeler ve periyodik bellek yeniden dengeleme gibi yaklaşımların tartışılmasıyla sona eriyor.
Video ayrıca paralel depolama tahsisi için çözümleri tartışıyor ve bir çözüm olarak İstif ayırıcıyı tanıtıyor. İstif ayırıcı, yanlış paylaşımı azaltmak, ölçeklenebilirliği iyileştirmek ve harici parçalanmayı azaltmak için yığınlar arasında taşınabilen yerel ve küresel yığınlar ile büyük süper blokların bir kombinasyonunu kullanır. Genel öbekte ayrılan maksimum depolama, en fazla yerel yığınlarda ayrılan maksimum depolamadır ve ayak izi, kullanıcı ayak izi artı yerel yığınlarda ayrılan ancak kullanılmayan depolama ile üst sınırdır. Video ayrıca Je malloc ve Super malloc gibi diğer ayırıcıları da kısaca tartışıyor ve kıyaslama sonuçları Super malloc'un Je malloc ve Hoard'dan daha iyi performans gösterdiğini gösteriyor. Tartışma, çöp toplama ayrıntıları için çevrimiçi slaytlara atıfta bulunularak sona erer.
Ders 13. Cilk Çalışma Zamanı Sistemi
Ders 13. Cilk Çalışma Zamanı Sistemi
Cilk çalıştırma zamanı sistemi, hesaplamaları çalışma zamanında işlemcilere eşlemek için rastgele bir iş çalma zamanlayıcısı kullanarak paralel işlemciler üzerindeki hesaplamaları programlamaktan ve yük dengelemeden sorumludur. Sistem, ek çalma maliyeti pahasına programın seri yürütülmesini optimize etmek için tasarlanmıştır. Çalışan, yığın çerçevelerine işaretçiler içeren ve baş ve kuyruk işaretçileri kullanan ayrı bir deste veri yapısını korur. Çalınmaya müsait çerçeveler, güverte çağrı yığınının dışındayken çalmanın gerçekleşmesi için gerekli bilgileri içeren ek bir yerel yapıya sahiptir. Bu bölüm, sistemin işlemcilerin çalışan bir işlevin ortasından yürütmeye başlamasını nasıl sağladığını ve belirli işlemciler hala hesaplamaların bitmesini beklediği için noktanın ötesinde yürütülemeyen bir senkronizasyon ifadesine ulaşıldığında işlemciler arasındaki eşitlemenin nasıl karmaşık hale geldiğini açıklar. Buna ek olarak, konuşmacı, sistemin performansını, tasarım hususlarını ve veri yapılarını ve sistemin THC protokolünü kullanarak yürütmeyi nasıl optimize ettiğini ele alıyor ve biri işi yürüten işçi için, diğeri hırsız için olmak üzere iki protokol setini içeriyor.
Cilk Runtime System, mağdur süreçlerin yürütme destelerinden yapılan hesaplamaların çalınmasını önlemek için bir set atlama ve uzun atlama protokolü kullanır. Cactus Stack soyutlaması, hırsız sürecinin kurbanın yığınlarının bozulmasını önlemek için kendi çağrı yığınına sahip olmasına izin verir. Sistemin senkronizasyon protokolü, senkronizasyonun yalnızca bir işlev içindeki iç içe hesaplamalar arasında gerçekleşmesini sağlamak için bir hesaplama ağacı ve bir Kaktüs Yığını kullanır. Tam Çerçeve Ağacı, senkronizasyon sürecini basitleştirmek için olağanüstü alt hesaplamalarla hesaplamalar arasındaki üst-alt ilişkileri korur. Ek olarak, çalışma zamanı sistemi, geçerli işlevin olağanüstü alt hesaplamaları olmadığı ve tüm çalışanların meşgul olduğu ortak durumu optimize eder. Desteklenen diğer özellikler arasında C++ istisnaları, indirgeyici hiper nesneler ve soyağaçları bulunur.
Ders 14. Önbelleğe Alma ve Önbelleği Verimli Algoritmalar
Ders 14. Önbelleğe Alma ve Önbelleği Verimli Algoritmalar
Önbelleğe alma ve önbelleği verimli kullanan algoritmalar hakkındaki videoda eğitmen, modern makinelerin önbellek hiyerarşisini, tamamen ilişkilendirilebilir ve doğrudan eşlenmiş önbellekler arasındaki farkları ve ayarlı birleştirici önbelleklerin avantajlarını ve dezavantajlarını açıklıyor. Video ayrıca ideal önbellek modelini ve önbelleği verimli kullanan algoritmalar kavramını da tanıtıyor. Konuşmacı önbellek eksik lemmasını, uzun önbellek varsayımını ve alt matris önbelleğe alma lemmasını tartışır. Ayrıca, bir alt matrisi okurken ve matris çarpımı sırasında ortaya çıkan önbellek kayıplarını da analiz ederler. Video, döşemeli matris çarpımı kavramını ve bunun performansı nasıl önemli ölçüde artırabileceğini tanıtarak sona eriyor, ancak bunun taşınabilir olmadığını ve birden çok önbellek düzeyi için optimize etmenin pahalı olabileceğini de belirtiyor.
Ders, örnek olarak özyinelemeli matris çarpımını kullanarak önbelleğe alma ve önbelleği verimli kullanan algoritmaları kapsar. Konuşmacı, hem işi hem de önbellek kayıplarını ayrı ayrı analiz etmenin önemini vurguluyor ve farklı önbellek boyutları nedeniyle önbelleğe duyarlı algoritmaların tüm makineler için ideal olmayabileceğini belirtiyor. Konuşmacı ayrıca herhangi bir önbellek boyutu için otomatik ayar yapan önbellekten habersiz algoritmaları tartışıyor ve paralel önbellekten habersiz koddaki gelişmelerden bahsediyor. Son olarak amaç, ya önbellek farkında olan ya da önbellekten habersiz algoritmalar tasarlamaktır ve önbellekten habersiz algoritma tasarımı tartışması bir sonraki derste devam edecektir.
Ders 15. Önbelleği Bilmeyen Algoritmalar
Ders 15. Önbelleği Bilmeyen Algoritmalar
Video, bir makinedeki önbellek boyutunu otomatik olarak ayarlayabilen, iyi önbellek verimliliği sağlayan ve makinenin önbellek parametreleri hakkında bilgi gerektirmeyen önbellekten habersiz algoritmaları tartışıyor. Video, bir 2B matris üzerinde şablon yöntemini kullanarak diferansiyel denklemler yoluyla ısı difüzyonunu simüle etmek için kodun nasıl yazılacağını gösterir. Kodun hem döngülü hem de yamuk versiyonları vardır; ikincisi önbellek açısından daha verimlidir ancak döngü kodunun erişim modelinin öngörülebilirliği nedeniyle 2B simülasyonda önemli ölçüde daha hızlı değildir. Video ayrıca önbelleğe alma ile paralellik arasındaki etkileşimi ve olası paralel hızlanma darboğazlarının teşhisini tartışıyor. Son olarak, konuşmacı şablon hesaplamalarını ve bir dizideki her noktanın, şablon adı verilen, önbellek kayıplarından muzdarip olabilen ve zamansal ve uzamsal konumlardan yararlanan verimli algoritmalar kullanılarak azaltılabilen depolama gereksinimleri olan sabit bir model kullanılarak nasıl güncellendiğini açıklar.
Videonun ikinci kısmı, sıralama ve birleştirme için önbellekten habersiz algoritmaları tartışıyor. Video özellikle birleştirme sıralamasının önbellek karmaşıklığını ele alıyor, çok yollu birleştirme kavramını tanıtıyor ve çok yollu birleştirme algoritmasının önbellek karmaşıklığını açıklıyor. Video ayrıca, K kareli öğeleri ve K sıralı listeleri birleştirebilen, önbellekten habersiz bir sıralama algoritması olan huni sıralama algoritmasını da tartışıyor. Huni sıralama algoritması optimaldir ve yinelemeli olarak K hunisinin karekökü ile oluşturulur. Video, b-ağaçları, sıralı dosya bakımı ve öncelik sıraları gibi önbellekten habersiz başka birçok algoritma ve veri yapısı olduğunu açıklıyor. Genel olarak video, konu hakkında daha fazla bilgi edinmek isteyenler için önbellekten habersiz algoritmalara bir giriş sağlar.
Ders 16. Belirleyici Olmayan Paralel Programlama
Ders 16. Belirleyici Olmayan Paralel Programlama
Bu video, deterministik ve deterministik olmayan paralel programlama ile ilgili çeşitli kavramları tartışmaktadır. Konuşmacı, anormal davranışlara ve zor hata ayıklamaya yol açabileceğinden, determinizmden kaçınmanın önemini vurgular. Determinizmi yönetme stratejileri arasında sabit değerler, kayıt tekrarı, analiz araçları, kapsülleme ve birim testi yer alır. Mutekslerin kullanımı, dönmeye karşı verim, girene karşı girmeyen ve adile karşı adil olmayan dahil olmak üzere ayrıntılı olarak araştırılır. Konuşmacı ayrıca paralel programlama bağlamında bağlam değiştirme kavramına ve "kayak kiralama sorununa" değiniyor. Bölüm, çok çekirdekli işlemcilerde performans mühendisliğinin temel ilkelerini tartışarak sona eriyor.
Videonun ikinci kısmı, paralel programlamadaki kilitlenme sorununu ele alıyor ve bunu önlemek için, bekleme döngüsü olmamasını garanti eden mutekslerin doğrusal sıralaması gibi çözümler sunuyor. Ek olarak, konuşmacı kritik bir bölgeyi tüm güncellemeleri aynı anda yapan bir işlem olarak temsil ederek atomikliği sağlayan işlemsel bellek kavramını tanıtıyor. Ardından video, küresel bir kilide ihtiyaç duymadan kilitlenmeleri ve açlığı önlemek için sonlu bir sahiplik dizisine sahip kilit tabanlı bir yaklaşım ve bir yayın sıralaması gerektiren yöntem kullanan bir algoritma sunar. Son olarak, birden çok kilidin aynı anda bir kilit edinmeye çalışmasını önleyen ve performans sorunlarını önleyen algoritma yayın sıralama ve yeniden alma açıklanmaktadır.
Ders 17. Kilitsiz Senkronizasyon
Ders 17. Kilitsiz Senkronizasyon
Charles Leiserson, bir YouTube videosunda kilitsiz senkronizasyon kavramını araştırıyor. Sıralı yürütmeyi sağlamak için küresel bir doğrusal talimat düzenine duyulan ihtiyacı gösteren bir örnek sağlar ve kilit kullanmanın zorluklarından ve potansiyel sorunlarından kaçınarak sıralı tutarlılık yoluyla karşılıklı dışlamanın nasıl elde edilebileceğini tartışır. Leiserson, Peterson'ın algoritmasını, eşzamanlı süreçlerin müdahalesi olmadan kritik bölümlere erişmek için yalnızca yükleme ve depolama işlemlerini kullanan bir çözüm olarak sunar. Video ayrıca, donanımın yeniden sıralanması nedeniyle bellek yoluyla senkronizasyonun zorluklarını ve diğer talimatlarla göreli sıralamayı sürdürmek için bellek çitleri kavramını kapsar. Leiserson, paralel makineler için sıralı tutarlılığı desteklemenin donanım tasarımcıları için yararlı olduğunu ancak elde etmenin zor olduğunu savunuyor.
Videonun ikinci bölümünde, paralel programlarda hataların önlenmesinde bellek parmaklıklarının ve senkronizasyon talimatlarının kullanımı anlatılmaktadır. Konuşmacı, bellek çitlerini örtülü veya açık bir şekilde uygulamanın farklı yollarını ve bir işlemcinin farklı yönleri üzerinde çalışan farklı ekipler arasında dikkatli mühendislik ve koordinasyonun önemini araştırıyor. Ayrıca öğretim görevlisi, yalnızca sabit alan kullanarak n-thread kilitlenmeden bağımsız karşılıklı dışlama algoritmalarının mutekslerini uygulamak için C11 dil standardındaki kilitsiz algoritmanın bir parçası olarak CAS talimatlarının kullanımını tartışır. Charles Leiserson, çok iş parçacıklı bir sistemde kilit kullanma sorununu ve bunun yerine CAS kullanmanın çözümünü açıklıyor, çünkü kilide uzun süre tutunan bir iş parçacığı potansiyel olarak aynı kaynağa erişmeyi bekleyen diğer iş parçacıklarını engelleyebilir. Ek olarak video, karşılaştır ve değiştir ile ilgili potansiyel ABA sorununu vurgular ve konuyla ilgilenenleri kilitsiz algoritmalar hakkında daha fazla bilgi edinmeye teşvik eder.
Ders 18. Etki Alanına Özgü Diller ve Otomatik Ayarlama
Ders 18. Etki Alanına Özgü Diller ve Otomatik Ayarlama
Bu videoda, MIT'deki EECS bölümünden Profesör Saman Amarasignhe, performans mühendisliğinde etki alanına özgü dilleri (DSL'ler) kullanmanın ve otomatik ayarlamanın faydalarını tartışıyor. Genel amaçlı dillerde tanımlanması zor olan alana özgü alanları yakalayan ve programcıların daha iyi performans için alan uzmanlarının bilgisinden yararlanmalarına olanak tanıyan DSL'lerin önemini vurguluyor. Singh, grafik bölümleme ve hesaplamada grafiğin şeklinin önemi dahil olmak üzere DSL'leri kullanarak grafik işlemlerinin optimizasyonunu tartışıyor. Görüntü işleme için hızlı kod optimizasyonu ve makineler arasında taşınabilirlik sağlayan DSL Halide'yi tanıtıyor. Halide'nin Google ve Adobe gibi çeşitli sektörlerde kullanımını tartışıyor. Son olarak, paralellik, yerellik ve gereksiz çalışmaya odaklanırken kodu optimize etmede farklı yaklaşımlarla deneme yapmanın önemini vurguluyor.
Video ayrıca performans mühendisliğinin zorluklarından ve bir programın verimli çalışması için en uygun parametreleri bulmadan bahsediyor. Konuşmacı, otomatik ayarlamanın, optimum değerleri bulmak için geniş parametre alanını otomatik olarak arayarak bu sorunu çözebileceğini öne sürüyor. Kapsamlı aramanın pratik olmayabileceğini ve buluşsal tabanlı çözümlerin optimal olmayabileceğini belirtiyor. Kabul edilebilir değerler alanı tanımlayan ve performans sonuçlarına göre yinelenen otomatik ayarlama, en uygun çözümleri bulma sürecini hızlandırabilir. Konuşmacı ayrıca, kapsamlı aramadan daha verimli ve etkili programlar üretebilen Try için programların oluşturulmasında otomatik ayarlamanın uygulanmasını tartışıyor.
Ders 19. Leiserchess Codewalk
Ders 19. Leiserchess Codewalk
"19. Leiserchess Codewalk" adlı bu YouTube videosunda Helen Xu, rakip takımın şahını vurmak veya şahınızı vurmak amacıyla iki takım tarafından oynanan bir oyun olan Lesierchess'in kurallarını açıklıyor. Oyunda iki tür hamle vardır, temel ve swat hareketleri ve rakibin en son hamlesini geri alırsa bir hamleyi geçersiz kılan bir Ko kuralı. Xu, Fisher zaman kontrol yöntemi, Forsythe-Edwards Notasyonu, Bulut otomatik test cihazı ve proje organizasyonu, Elo derecelendirmelerini kullanarak botları değerlendirme ve karşılaştırma, hareket oluşturma, statik değerlendirme ve alfa-beta gibi arama algoritmaları dahil olmak üzere oyunu oynamanın çeşitli yönlerine dalıyor. ilke değişimi, alt ağaç budama ve yer değiştirme tabloları. Ayrıca programı optimize etmek için test altyapısının önemini ve tahtadaki her kareyi parçanın türüne ve rengine göre değerlendiren buluşsal yöntemleri içeren eval.c dosyasını tartışıyor.
Konuşmacı aynı zamanda oyunun lazer kapsama yönüne de girerek, doğru bir ifade kullanarak oyuncunun rengine dayalı bir konum için olası tüm hareketleri üretmenin karmaşık sistemini açıklıyor. Ayrıca, koddaki doğruluğun önemini ve bunun nasıl test edileceğini açıklayarak, performans optimizasyonundan önce doğruluğu sağlamak için gösterimin dönüştürülmesini önerirler. Konuşmacı ayrıca, kullanıcıların tabloları ve komutları istedikleri gibi düzenlemelerine izin veren ve izleyicilere ölü kodun temizleneceği ve diğer hataların düzeltilmesi için rapor edilmesi gerektiği konusunda güvence veren Leiserchess UCI arayüzü tarafından sağlanan büyük esnekliği tartışıyor.
Ders 20. Spekülatif Paralellik ve Leiserchess
20. Spekülatif Paralellik ve Leiserchess
"20. Spekülatif Paralellik ve Leiserchess" başlıklı bu YouTube videosunda eğitmen, esasen belirli görevlerin paralel olarak gerçekleştirilebileceğini ve daha hızlı kodla sonuçlanabileceğini önceden tahmin eden spekülatif paralellik kavramını tanıtıyor. Ancak konuşmacı, bu kodun deterministik olmadığı ve yalnızca gerektiğinde kullanılması gerektiği konusunda uyarılırken, daha iyi bir seri kodun kullanılabileceği durumlarda kullanılmaması konusunda da uyarıda bulunuyor. Videonun önemli bir kısmı, arama süresini optimize etmek için oyun ağacının budanmasını içeren paralel alfa-beta aramalarının tartışılması etrafında dönüyor ve ayrıca arama algoritmalarının değerlendirme sürecinde, özellikle döngüden ve durgunluktan kaçınmak için kullanılan farklı veri yapıları ve buluşsal yöntemlerden bahsediyor. aramak. Video aynı zamanda yinelemeli derinleştirmenin faydalarına ve bunun aramalar için daha iyi hamle sıralamasına nasıl yol açtığına değinirken aynı zamanda aynı taşlarla satranç tahtasındaki her konum için benzersiz bir karma değeri içeren arama algoritmalarında kullanılan bir optimizasyon tekniği olan Zobrist hashing'i tartışıyor.
Bu video aynı zamanda satranç motorları için transpozisyon tabloları, geç hamle azaltma ve hamle oluşturmak için bitboard kullanımı gibi çeşitli optimizasyon tekniklerini tartışıyor. Konuşmacı ayrıca programcılara bir hareketin lazerin yolunu etkileyip etkilemediğini değerlendirmelerini ve "lazer kapsamı"nın peşinden gitmelerini tavsiye ettiği "spekülatif paralellik ve Leiserchess" konusundan da bahsediyor. Konuşmacı, eski temsilleri kodda bırakmayı ve değişiklikleri test etmek için programları kullanmayı önerir. Ayrıca Leiserchess'te bir lazerin Kral'a ne kadar yakın olduğunu ölçmek için bir buluşsal yöntem geliştirdiler. Daha fazla optimizasyon önerisi, rakibin oyuncunun lazerine olan yakınlığını değerlendirmenin daha iyi bir yolunu bulmayı ve hareket sıralamasını optimize etmeyi içerir. Son olarak, kodu uygun şekilde yeniden düzenlemenin ve test etmenin önemi tartışılmaktadır.