Bir süredir paralel ortamda çalışan bir moleküler optimizasyon kodu ile uğraşıyorum. Çoğu şeye sıfırdan başladım, temel sağlam olsun, ileride başka sistemlere de kolayca ayarlayıp aktarabileyim diye (şu anda yazmakta olduğum kod sadece grafit bazlı karbon yapıları konu edinebiliyor). Bu kod yazım sürecinde gerçekten şaşırdığım şeyler oldu ki bunların başında iki sene saçımı başımı yolmama rağmen pek bir şey anlamadığım Polak-Ribiere (Fletcher-Reeves‘i de dahil edebiliriz bittabii ki!) algoritmasını bir gecede hatim eder gibi ÇOT! diye kavramam oldu. Şu anda eldekiler:
1) Bir fonksiyonun minimumunu hesaplayan bir algoritma + kod
2) İş yükünü performansa göre bilgisayarlara dağıtan bir algoritma
3) Bir sistemdeki etkileşimleri bulan, bunları optimal bir şekilde işleme çeviren algoritma + kod
4) Allinger’in MM3 formülasyonuyla sistem enerjisini hesaplayan algoritma + kod
Şekilde görüldüğü üzere, helva yapmak için bütün malzeme var elimizde, inşallah helvayı da birkaç gün içinde yiyeceğiz.. 8)
Kodu standart C++’da yazıyorum. Başta şeytan çok dürtmüştü Visual C++ .NET Framework’de yazmam için ama iyi bir direniş sergiledim. Hatta onun editörünün envai çeşit otomatik-tanımlama lüksünden bile vazgeçip, doğruca VIM’in kollarına bıraktım kendimi. Derleyici olarak da g++ kullanıyorum, “Kod Linux’da da derlenir mi acaba?” derdinden uzak duruyorum.. 8) (koduyorum, çıkıyorum.. 8)
Hamiş Mesajı yazdım, aklıma geldi, bilim dünyasında şöyle bir kötü yönelim var: insanlar sanki makaleleri mümkün olduğunca anlaşılmaz, karışık yazmak için çaba sarfediyorlar. Hal böyle olunca da, seminer veren bir amcanın seminerini dayandırdığı ve bir türlü anlayamadığınız o “ağır” makalesi seminer sırasında “aaa, bu kadar kastırdığı şey bu muymuş!?!” nidanızla ve bir şekilde kazıklandığınız duygusuyla sizi başbaşa bırakıveriyor. Genelde kitaplar makalelerden çok daha açık bir anlatıma sahip ve dahi daha bir user-friendly olsa da, sevgili Elijah Polak’ın 1971 tarihli Computational Methods in Optimization adlı kült kitabı ne yazık ki gereksizce bilgiç takılıyor. Sonuçta bu kitapta hedeflediği şeyin bir Optimizasyon Teorisi kurmak olduğunu söylüyor, yani derdi sizin işinize yarayacak bir kitaptan çok, yeni bir dilin alfabesini ispatlarla temelden kurmak ama temcit pilavı gibi dönüp dolaşıp 3 tane algoritmayı 300 sayfa boyunca önümüze koyması biraz karizmayı çiziyor. 8( Bunun tam tersi bir örnek olarak ise rahatlıkla Peter S. Pacheco’nun Parallel Programming with MPI‘ını verebilirim. Peter Amca anlatacağı şeyleri o kadar doğallıkla ve sevecenlikle sunuyor ki! Hastası olduğum Michael Morrison’ın Understanding Quantum Physics : A User’s Manual‘ından sonra roman gibi bir solukta okuduğum ikinci fizik/bilim/lala kitabı..