yardıma ihtiyacım var! Görev çözülmedi, demirin sınırlamalarıyla karşılaşıyorum - sayfa 2

 
ALXIMIKS :

Benzer bir sorunu tartıştıkları siteyi ve bunu C++ ile çözme seçeneklerini hatırladım.

Teşekkürler, okuyacağım.

İvan İvanov :
Tabii ki üzgünüm, ama ya 64 bit denerseniz veya MT yalnızca 32'ye dönerse
Böyle yüksek derecede matematiksel bir şeyin 64 bitte dönmesi gerektiğini saf bir şekilde düşündüm.
uçağın aerodinamiğini hesaplamak için aynı programları alın, bu nedenle prensipte 32x'te çalışmazlar
Arabanın 32 kat daha hızlı hareket ettiği ana argümanını biliyorum, ancak bu gerçekten bir donanım sorunu IMHO

x64'e geçmek, tavanı çok uzağa değil, basitçe hareket ettirecektir. Başka bir 16 GB bellek için bana koşma? ;)

 
anonymous :

1. Doğal olarak x64 sistemi kullanın.

2. Amazon EC2 bulutunda daha güçlü bir makine kiralayın ve üzerinde hesaplamalar yapın.

3. Sıkıştırılmış verileri kullanın, anında bellekte sıkıştırın. Gerçek veriler, akışlara bölündüğünde daha iyi sıkıştırılır (işaret/mantis/üs); 12 bitlik kayan nokta kullanabilirsiniz (doğruluk pahasına).

4. EA dışında büyük verilerle çalışabilecek bir hesaplama yapın (Matlab/R/vb).

1.2: Bu, tavanı hareket ettirmekle ilgili, ancak sorunu belirli bir sayıya bağlı kalmadan çözmek istiyorum.

3. Sorun, diskteki veri miktarı değil, tam tersi - bellekteki miktardır. Yüzde 10-20 daha sıkıştırabilirim ama yine bu sorunu çözmez.

4. Şimdilik sanal alanda kalmayı umuyorum. Böylece daha sonra fotokopi / senkronizör yazmazsınız ...

Katıldığınız için teşekkürler!

 
komposter :
x64'e geçmek, tavanı çok uzağa değil, basitçe hareket ettirecektir. Başka bir 16 GB bellek için bana koşma? ;)

Her zaman bu tür verilerle çalışmıyorsunuz, değil mi? Doğrudan x64'ün altına yazın ve gerektiğinde amazon'da çalıştırın. Ayrıca orada bir mikro örnekte hata ayıklayabilirsiniz.

Yine de böyle bir görev sürekli ortaya çıkarsa - 64 GB bellek yaklaşık 1 bin dolara satın alınabilir, örneğin Corsair Vengeance Pro CMY64GX3M8A2133C11.

Veya algoritmanın yapısını, veriler üzerinden tek geçişte çalışabilmesi için yeniden düşünün.

ps Ayrıca, sıkıştırılmış verileri bellekte saklayabilir ve işleme için yeterli bir süre boyunca gerektiği gibi sıkıştırabilirsiniz.

 
komposter :

Teşekkürler, okuyacağım.

x64'e geçmek, tavanı çok uzağa değil, basitçe hareket ettirecektir. Başka bir 16 GB bellek için bana koşma? ;)

şaka yapıyorum :-)
Oynamak için bilgisayarımda 8 gb bir çaydanlık
 

Seçenek 1. Dosyayı parçalara ayırın.

Seçenek 2. Ayrıca parçalara ayırın, ancak yine de sistemleştirin. Sözlükte bir kelime aramak gibi. "A.txt" dosyasında aradığımız "A" harfi ile başlar. Böylece verileri bir ağaç biçiminde düzenleyebilirsiniz (sözlüğe benzer: A, B ... klasörleri AA, AB vb. klasörlerinin A klasöründe), arama çok hızlı bir şekilde gerçekleştirilecektir.

 
komposter :

Bu nedenle, birçok kez okumak zorunda kalacaksınız ve bu:

  • çok yavaş
  • vidada delik açmak

kurtarmaya sanal RAM diski ;)

ve delik olmayacak ve hızı beğeneceksiniz.

ve tüm cilt hemen kullanılabilir.

parçalara ayırmaya gerek yok, çünkü parçalar göreve uymuyor

 
Dosyayı parçalara ayırmaya çalışırdım ve her parçayı gerektiği gibi indirirdim (yani, Dima'nın önerdiği gibi). Daha kesin bir şey söylemek zor çünkü. belirli göreve bağlıdır. Ancak sorun ilginç, bulgularınızla güncel kalın.
 
komposter :

1. Bu önbellek... Ya da ne demek istediğini anlamıyorum. Gerekli parçaların sürekli okunmasıyla varyantım?

Bir dosyayı paketinden okumak için, sarmalayıcı dosyanın küçük bir bölümünü bellekte tutacak ve okumadan değiştirecektir. Demek istediğim, dosyanın nasıl kullanıldığını biliyorsun, yani sarmalayıcı oldukça verimli olmalı.

kompost :

Kahrolası...

Aynı yumurtalar, sadece yan tarafta. Okuma hızlanabilir, ancak bu sorunu küresel olarak çözmez.

Küçük bir ölçekte tekrarlayan eylemler düşünüyordum.

Eşleme kullanmak, kendinizinkini yazmak yerine Windows önbelleğini kullanmaktır. Bir parça indirdim, okudum, yükledim. Bir parça sık kullanılıyorsa, Windows onu bellekte tutacaktır.

anonim :

3. Sıkıştırılmış verileri kullanın, anında bellekte sıkıştırın. Gerçek veriler, akışlara bölündüğünde daha iyi sıkıştırılır (işaret/mantis/üs); 12 bitlik kayan nokta kullanabilirsiniz (hassasiyet pahasına).

4. EA dışında büyük verilerle çalışabilecek bir hesaplama yapın (Matlab/R/vb).

Ya da öyle (ler)
 
Veri yapısının ve gerçekleştirilen işlemlerin özelliklerini bilmeden sadece genel tavsiyelerde bulunulabilir. Seçeneklerden birinin özü, ham verileri bir veya daha fazla geçişte (ancak diski silmeden) - aynı 4 GB - daha küçük meta verilere dönüştürmek ve daha sonra zaten meta verilerle çalışmaktır (toplam değerler, bazı parametrelere göre kesimler vb. .). Bu işe yaramazsa, o zaman - verileri DBMS'ye sürün.
 
komposter :

Çok miktarda bilgi var (bir metin dosyasında yaklaşık 20 GB).

...

Ve bu dosya bir arşivleyici tarafından sıkıştırılırsa, hacim ne olacaktır (sonuçta metin çok iyi sıkıştırılmalıdır)?