MetaTrader 5 Python Kullanıcı Grubu - Metatrader'da Python nasıl kullanılır - sayfa 25
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
Kodun OpenCL bölümünde nasıl hata ayıkladınız?
Renat, lütfen OpenCL'nin çok sayıda diziyle çalışmanın hangi durumlarda avantaj sağlayacağını veya bir Uzman Danışmanın çok sayıda sembol ve göstergeye sahip olup olmadığını yazın.
Çapraz bağları olmayan ve paralel olarak analiz edilebilen milyonlarca diziyi toplayabilirseniz, hızlandırabilirsiniz.
Genel olarak, görevlerinin sınırlarını çözen ve anlayan kişi, sorusuna kolayca cevap verecektir. Sınırları anlamamakla birlikte (ve sadece "eğer" hayalleri vardır, sürekli olarak çözülen görevlerin ıstırabıyla birlikte , paralellik sadece harika bir fikir olarak kalır.
Çoğu görev ne yazık ki etkili bir şekilde paralelleştirilemez.
Çapraz bağları olmayan ve paralel olarak analiz edilebilen milyonlarca diziyi toplayabilirseniz, hızlandırabilirsiniz.
Genel olarak, görevlerinin sınırlarını çözen ve anlayan kişi, sorusuna kolayca cevap verecektir. Sınırları anlamamakla birlikte (ve sadece "ne olursa" hayalleri vardır) , sürekli olarak çözülen görevlerin ıstırabı ile paralellik sadece harika bir fikir olarak kalır.
Çoğu görev ne yazık ki etkili bir şekilde paralelleştirilemez.
hesaplamalarda eşlik eden anlar olduğu gerçeği hakkında, hatırlıyorum, bu yüzden soru kafamda ortaya çıktı
Başlatma ve sonuçları yazdırma.
OpenCL kodunun içine bir çıktı koymak mümkün müdür?
OpenCL hakkında kabalık varsa
Tek tek N çift değerlerinin yazılabileceği büyük (vektör) kayıtlara sahip bir işlemci olduğunu hayal edebilirsiniz (örneğin, N=64 olsun, sonra 64 değer kayıt defterine yazılabilir).
Bu tür kayıtlar eklenebilir, çoğaltılabilir, vb. kendi aralarında, bir komut için N çiftler üzerinde bir eylem gerçekleştirebileceğiniz ortaya çıktı.
Ama sınırlamalar var.
Aynı register içindeki değerler üzerinde işlem yapamazsınız, yani. örneğin, bir kaydın değerlerinin bir kısmını birbirine ekleyemezsiniz.
Frekans açısından, böyle bir işlemci geleneksel bir CPU'dan çok daha düşüktür, bu nedenle onu bir değerin sıralı işlenmesinin gerekli olduğu görevlerde kullanmak mantıklı değildir.
Daha düşük frekansın yanı sıra bir de hafıza sınırlaması vardır, sadece özel hafızadan değerleri yükleyebilir ve kaldırabilirsiniz.
RAM'den gelen veriler bu özel belleğe kopyalanabilir, ancak yalnızca çok dar (yavaş) bir kanal üzerinden.
Bu nedenle, büyük miktarda veri işlemeniz gereken görevler de OpenCL için pek uygun değildir.
OpenCL kodunun içine bir çıktı koymak mümkün müdür?
Dışarıda.
Eğitim programını çoğaltmayalım. OpenCL hakkında bizim tarafımızdan ve genel olarak İnternette oluşturulan ve ayrıntılı olarak açıklanan her şeyi alın ve okuyun.
OpenCL araması:
Genel olarak, Google'da "opencl ticaret" konusunda kaynaklarımızdan çok sayıda materyalin bulunması çok ilginçtir:
Tek iş parçacığı/OpenCL modlarında Python 3.8 ve MQL5'teki karşılaştırmalar şunlardır: saniye cinsinden süre, ne kadar düşükse o kadar iyi
Numa aracılığıyla JIT modunda Python, donanım:
OpenCL kullanmanın bir örneği çok basittir ve optimizasyonunda gösterişsizdir. OpenCL için görev çok büyük olmasa da ve hazırlık için genel giderler onun için işe yarasa da, yine de çok daha iyi bir sonuç gösterdi.
OpenCL ile düzenli olarak çok büyük paralel hesaplamaları çalıştırabilirsiniz. Giriş eşiği büyük değil, nasıl kullanılacağını anlamak için bir gün yeterli.
Oynatma dosyaları ektedir.
OpenCL'de PI hesaplama ile ilgili bu problemin 7 yıl önce çözüldüğü ortaya çıktı:
Neyin indirileceğine doğrudan bağlantısı olan var mı? Intel kayıt gerektirir.
Shl İşlemcideki Intel GPU'da, video bağdaştırıcı sürücüsünü çökertmeniz, ardından Intel_OpenCL_driver'ı yüklemeniz, ardından video bağdaştırıcı sürücüsünü yüklemeniz gerekir. Böylece her şey çalıştı ve video yavaşlamıyor.
Vict :
Korkarım ki bu özelliğin aktif kullanımı, fırlatmayı birkaç dakikalık bir göreve dönüştürecek.
Dönmezse, önbelleğe almayı etkinleştirebilirsiniz.
Tek iş parçacığı/OpenCL modlarında Python 3.8 ve MQL5'teki karşılaştırmalar şunlardır: saniye cinsinden süre, ne kadar düşükse o kadar iyi
Numa aracılığıyla JIT modunda Python, donanım:
Çok iş parçacıklı modda, 10.000 iş parçacığında CPU ile GPU performansını karşılaştırıyorsunuz. Python'da GPU kullanılmaz.
Uygun ekran kartı olan bir bilgisayar bulursam Python kodunu düzeltip bu bilgisayarda test edeceğim.OpenCL'deki yazıları hatırlattığınız için teşekkür ederim. Kodunuzu CPU'da çalıştırmayı deneyeceğim, bir GPU'nun gerekli olduğunu düşündüm.
Genel olarak, kimin daha hızlı olduğunu kanıtlamak için yola çıkmadım. Python'u entegre etme planlarınız hakkında bilgi edinmek daha ilginç.
Python'da planlanan ticaret işlevleri ve kene etkinlikleri var mı?
Yine de GPU gerekli görünüyor, "AMD APP SDK" indirilemiyor.
OpenCL hakkında kabalık varsa
Tek tek N çift değerlerinin yazılabileceği büyük (vektör) kayıtlara sahip bir işlemci olduğunu hayal edebilirsiniz (örneğin, N=64 olsun, sonra 64 değer kayıt defterine yazılabilir).
Bu tür kayıtlar eklenebilir, çoğaltılabilir, vb. kendi aralarında, bir komut için N çiftler üzerinde bir eylem gerçekleştirebileceğiniz ortaya çıktı.
Ama sınırlamalar var.
Aynı register içindeki değerler üzerinde işlem yapamazsınız, yani. örneğin, bir kaydın değerlerinin bir kısmını birbirine ekleyemezsiniz.
Frekans açısından, böyle bir işlemci geleneksel bir CPU'dan çok daha düşüktür, bu nedenle onu bir değerin sıralı işlenmesinin gerekli olduğu görevlerde kullanmak mantıklı değildir.
Daha düşük frekansa ek olarak bir de hafıza sınırlaması vardır, sadece özel hafızadan değerleri yükleyip kaldırabilirsiniz.
RAM'den gelen veriler bu özel belleğe kopyalanabilir, ancak yalnızca çok dar (yavaş) bir kanal üzerinden.
Bu nedenle, büyük miktarda veri işlemeniz gereken görevler de OpenCL için pek uygun değildir.
PI hesaplama örneğinde vektör yoktur. Orada, toplam miktar birkaç bağımsız parçaya bölünür ve her bir OpenCL çekirdeğine gönderilir. Sonunda, her şey toplanır.
Örneğin, ayrı bir grafik kartı yoksa ve CPU'nun 4 fiziksel çekirdeği + 4 sanal çekirdeği varsa, yürütme sekiz kat daha hızlıdır. Onlar. toplamın parçaları, her bir çekirdekte paralel olarak hesaplanacaktır.