Yarım İkizler

Yarım ikiz olarak tanımlanabilecek ilk olay kayıtlara geçti. Genlerinin sadece yarısının ortak olduğu ikizler dünyaya geldi. Bu durumun, aynı anda iki spermin tek bir yumurtayı döllemesi ile meydana geldiği düşünülüyor. İkizler annelerinde gelen genleri aynen taşırken, ikizlerin baba tarafından gelen genleri birbirinden farklı. Aynı zamanda ikisinin de vücudunda hem erkek hem kadın hücreler mevcut. Diğer bir deyişle hücrelerinin bir kısmı hem X hem Y kromozonu (yani erkek) taşırken, bir kısmı iki tane X (yani dişi) kromozomlar taşıyor. Ayrıca ikizlerden biri hermafrodit iken diğeri erkek.

Windows Vista İncelemesi

PC World Şubat 2007 sayısında Windows Vista’yı masaya yatırıyor. İncelemeler RAM ihtiyacı ve hız konusunda ilginç sonuçlar ortaya koymuş.

  1. Windows Vista, Windows XP’ye göre daha yavaş. Ama bu yavaşlık şu an kullandığımız tek parçacıklı işlemlerle çalışan (not threaded) uygulamalar için tek işlemci çekirdeğine sahip sistemlerde görülüyor. Paralel programlar ve çok-çekirdekli işlemcilerle ilgili yazdıklarımız incelenirse artık bu devir değişmekte. Artık işlemcilerimiz çok-çekirdekli ve uygulamalarımızda işlem parçacıklı olmak zorunda. Ve Vista işlem parçacıklı programları, çok çekirdekli işlemcilerde, XP’ye göre daha hızlı çalıştırıyor.
  2. En az 1GB RAM’iniz olmalı. Ama daha fazlası pek de birşey katmıyor. RAM’inizi 2GB’a çıkartsanız bile hızda kayda değer bir artış gözlemlenmiyor.
  3. Aero, eğer normal sayılabilecek bir ekran kartına sahipseniz, cihazını o kadar da yormaz.

Windows Vista’ya Geçebilir miyiz?

Kullandığım bilgisayarın donanımı üst düzeyde olmasına rağmen, yeni Vista’nın ancak en alt yeterlilik düzeyini yakalayabiliyor. Tavsiye edilen sistem özelliklerini yakalayamıyoruz.

Windows Vista Sistem Donanım Gereksinimleri:

  Yeterlilik (Minimum) Tavsiye Edilen(Recommended)
Ana Bellek (Memory) 512 MB 1024 MB
İşlemci (Processor) 800 MHz 1 GHz
Sabit Disk (Hard Drive) 20 GB (15 GB’lık kesimi boş olmalı) 40 GB (15 GB’lık kesimi boş olmalı)
Ekran Çözünürlüğü 800×600 800×600
CD/DVD ROM CD ROM DVD ROM
Video Memory Video Card 128 MB Video Memory

En Hızlı 21 Yazılım Şirketimiz :)

Afrika, Avrupa ve Ortadoğu’da, en hızlı büyüyen 500 teknoloji şirketi arasında bu yıl 21 Türk şirketi yer aldı.

15 Mobilera
50 VeriPark
51 Bizitek
94 Elit
109 D-Market
114 Ergosis
142 Nexum
185 Eksim
193 Treda
231 Defne
288 Planet
294 Bildem
321 Megatek
345 Bayer
347 Compro
407 Logo
419 Havelsan
426 Banksoft
448 Meteksan
471 Hitit
493 Data

Proje Yöneticisi (Project Manager)

Proje Yönetici kavramını duysakda, içerik olarak neye karşılık geldiğini net hatlarda tanımlayamıyoruz. Sanırım bu daha çok Türkiye’ye özgü bir durum. Çünkü ülkemizde hemen hemen yazılım sektöründe her konumda kodlama ile uğraşılıyor.

Neyse işin aslına dair şunlar söylenebilir;

Proje Yöneticisi (Project Manager) için %10 teknik, %90 diplomatik bir görev tanımlaması yapan Joseph Mendoza, (Kineticom firması program yönetim birimi yöneticisi), proje yöneticisinin harika bir teknik düzeyde olmasından ziyade, pek çok konuda bilgi sahibi olan birisi olduğunu belirtiyor.

Proje yöneticisi, müşterilerle, iş arkadaşları, şirket yönetici ve hissedarlarıyla görüşerek projenın kapsamını , takvimi ve bütçeyi belirleyen, iletişimi yöneten ve sonuçlara ulaşmak için tüm parçaları bir araya getiren kişidir.

Teknik bir ekibe önderlik eden proje yöneticisinin bu işin üstesinden gelirken, kendi ekibinin ve projenin ihtiyaçlarını teknik olmayan iş kapsamında bir araya geldiği insanlara hem sözlü hem yazılı olarak açık anlaşılır şekilde aktarım, çözüm üretebilme yeteneğine sahip olmalıdır.

Şimdi geliştirici-kodlayıcı olarak iş hayatına başlayan pek çok yazılım sektörü çalışanı, zamanla kariyer hedeflerinde tercihlerinden biri olan proje yöneticiliği, kavramının gün geçtikçe daha net tanımlanmış bir konum olacağı açık. Diğer yandan eğer sizi asıl cezbeden, kodlamaya aşık ama hamaliyeden gün geçtikçe bıkan, yeni teknolojileri takip etmekden hoşlanan bir insansanız, sizin için yazılım mimarlığı, tasarlayıcı ya da danışmanlık konumları daha uygun olabilir.

Proje yöneticiliği, yazılım sektöründe en önemli konumlardan birisi. Özellikler yazılım olgusunun soyutluğu, proje yöneticisini önemi bir kaç kat artıyor. Bir inşaat projesinde hangi aşamada olduğunuzu, nasıl gittiğinizi, teslim tarihine yetişip yetişemeyeceğinizi tahmin etmenin somut yöntemleri var. Yazılım da ise, proje yöneticisi, projenin ne durumda olduğunu belirli bir noktadan sonra ancak hissederek birşeyler söyleyebiliyor. Bu da proje yöneticiliğini, önsezi kavrayış yeteneklerinin daha ön planda olması gereken bir konum haline getiriyor. Sanırım hemen hemen tüm yazılım projelerinin geliştirim sürelerini birçok kez uzatma almasını sebebi bu özelliklerin yokluğu.

Referanslar:

Prof. Dr. Ersin Töreci

http://content.monster.com/articles/3472/18741/1/home.aspx?WT.mc_n=MNL000308

Google’la 120 terabaytlık veri aktarımı

Google’ın açık kaynak birimi, bilim adamlarının kullanımı için çok büyük miktardaki verilerin aktarımına imkan verecek bir sistem üzerinde çalışıyor. Google aktarımı gerçekleştirmek isteyen bilim adamına bir sabit disk birimi gönderiyor. Bilim adamı verilerini bu diske kopyalıyor. Aynı zamanda sisteme taşınan bu veriler, sıradaki araştırmacıya aktarılıyor.

Proje Arşimet’in elyazmaları üzerine çalışan ekipin, veri aktarım sorunları sebebiyle başladı.

İşlemci Tasarımları Programlamayı Etkileyecek Mi?

2003 yılından beri mikro işlemcilerin saat hızlarındaki artış hemen hemen durmuş durumda. Intel’in verileri transistör ve hız ölçütlerine göre aşağıdaki çizge incelenebilir.

Intel 2004 ortasında piyasaya süreceğini duyurduğu 4 GHz’lik işlemcisini ilk önce 2005 yılına erteledi. Ardından 4 GHz işlemcinin çıkışını tamamen iptal etti. Aşağıda ise AMD ve Intel’in işlemci saat hızları karşılaştırmalı olarak incelenebilir.

Çok rahatlıklar görülüyorki, işlemci hızlarını artırmak gerçekten zorlaşmış durumda. Moore yasası’nın sona erdiği noktada mıyız?

Cevap, hayır. Çünkü toplam performansı etkileyen tek etken, merkezi işlem birimi (CPU) değil. Toplam verim artmaya devam edecek. Bu tabloda toplam verim olarak sistemlerin karşılaştırılmasını görüyoruz.

ntel Pentium 4/Xeon

Intel Core Duo
Intel Pentium M/D

AMD Athlon 64 / Athlon XP

PowerPC G5 / G4

appx. Pentium. 4 equivalent:

appx. Pentium. 4 equivalent:

appx. Pentium. 4 equivalent:

QUAD-Core 2.8 GHz Xeon

 

6.5

 

6.5

QUAD-Core 2.5 GHz PPC G5

6.5

 

.

.

5.3

Dual-Core 2.4 GHz Opteron

5.3

.

5.3

.

.

5.2

 

5.2

.

5.2

.

.

5.1

 

5.1

.

5.1

.

.

5.0

Dual-Core 2.2 GHz Opteron

5.0

.

5.0

.

.

4.9

.

4.9

Dual 2.7 GHz PPC G5

4.9

.

2.0 GHz Core Duo

4.8

.

4.8

Dual-Core 2.5 GHz PPC G5

4.8

.

.

4.7

.

4.7

.

4.7

.

Dual-Core 3.2 GHz Pentium D 840

4.6

Dual-Core 1.8 GHz Opteron

4.6

Dual-Core 2.3 GHz PPC G5

4.6

.

.

4.5

Dual Opteron 250 (2.4 GHz)

4.5

.

4.5

.

1.83 GHz Core Duo

4.4

.

4.4

Dual 2.5 GHz PPC G5

4.4

.

.

4.3

2.8 GHz Opteron
Athlon 64 FX-55 (2.6 GHz)

4.3

.

4.3

Dual 3.2 GHz Xeon

.

4.2

Dual-Core 2.0 GHz Opteron
Dual Opteron 248 (2.2 GHz)

4.2

Dual 2.3 GHz PPC G5

4.2

 

Dual-Core 3.0 GHz Pentium D 830

4.1

ual Opteron 248 (2.2 GHz)

4.1

Dual-Core 2.0 GHz PPC G5

4.1

.

1.67 GHz Core Duo

4.0

2.6 GHz Opteron
Athlon 64 4000+ (2.4 GHz)

4.0

.

4.0

Dual 3.06 GHz Xeon

.

3.9

Opteron 150 (2.4 GHz)

3.9

.

3.9

3.8 GHz Pentium 4

.

3.8

Athlon 64 3800+ (2.4 GHz)

3.8

2.5 GHz PowerPC G5

3.8

3.4 GHz Pentium 4
Extreme Edition

Pentium M 755 (2.4 GHz)

3.7

2.4 GHz Opteron
Athlon 64 3700+ (2.4 GHz)

3.7

Dual 2.0 GHz PowerPC G5

3.7

3.6 GHz Pentium 4

.

3.6

Athlon 64 FX-53 (2.4 GHz)
Opteron 148 (2.2 GHz) (???)

3.6

.

3.6

3.2 GHz Pentium 4
Extreme Edition

Pentium M 770 (2.13 GHz)

3.5

Athlon 64 3500+ (2.2 GHz)

3.5

.

3.5

3.4 GHz Pentium 4

.

3.4

Athlon 64 3400+ (2.2 GHz)
2.2 GHz Opteron

3.4

.

3.4

.

Pentium 760 (2.0 GHz)

3.3

Athlon 64 FX-51 (2.2 GHz)

3.3

Dual 1.8 GHz PowerPC G5

3.3

3.2 GHz Pentium 4 640

Pentium M 755 (2.0 GHz)

3.2

Athlon 64 3200+ (2.0 GHz)

3.2

2.1 GHz PowerPC G5

3.2

.

 

3.1

.

3.1

2.0 GHz PowerPC G5

3.1

3.0 GHz Pentium 4

Pentium M 750 (1.86 GHz)..

3.0

Athlon 3000+ (2.17 GHz)

3.0

.

3.0

 

 

2.9

Athlon 2800+ (2.08 GHz)

2.9

1.9 GHz PowerPC G5

2.9

2.8 GHz Pentium 4

Pentium M 745 (2.0 GHz)

2.8

Athlon 2600+ (2.13 GHz)
Athlon 64 2800+ (1.8 GHz)

2.8

1.8 GHz PowerPC G5

2.8

 

.

2.7

Athlon 2500+ (1.83 GHz)

2.7

.

2.7

2.66 GHz Pentium 4

Pentium M 745 (1.8 GHz)

2.6

Athlon XP 2400+ (2.0 GHz)

2.6

.

2.6

2.53 GHz Pentium 4

Pentium M 735 (1.7 GHz)

2.5

.

2.5

1.6 GHz PowerPC G5

2.5

2.4 GHz Pentium 4

 

2.4

.

2.4

.

2.4

.

Pentium M 725 (1.6 GHz)

2.3

Athlon 2200 (1.80 GHz)

2.3

Dual 1.42 GHz PowerPC G4

2.3

2.2 GHz Pentium 4

.

2.2

Athlon 2100+ (1.73 GHz)
Athlon 2000+ (1.67 GHz)

2.2

1.67 GHz PowerPC G4

2.2

.

.

2.1

Athlon 1900+ (1.60 GHz)

2.1

Dual 1.25 GHz PowerPC G4

2.1

2.0 GHz Pentium 4

 

2.0

Athlon 1800+ (1.53 GHz)

2.0

1.5 GHz PowerPC G4

2.0

1.9 GHz Pentium 4

Pentium M (Banias) 1.7 GHz
2.6 GHz Celeron

1.9

Athlon 1700+ (1.47 GHz)

1.9

 

1.9

1.8 GHz Pentium 4

Pentium M (Banias) 1.6 GHz
2.4 GHz Celeron

1.8

Athlon 1500+/1600+
(1.35-1.40 GHz)

1.8

Dual 1 GHz PowerpC G4
1.42 GHz PowerPC G4

1.8

1.7 GHz Pentium 4

Pentium M (Banias) 1.5 GHz

1.7

1.3 GHz Athlon

1.7

1.33 GHz PowrPC G4

1.7

1.6 GHz Pentium 4

.

1.6

1.2 GHz Athlon

1.6

1.2 – 1.25 GHz PowerPC G4

1.6

Moore Yasası devam edecek ama ne ile? Yeni gözdemiz çok çekirdekli işlemciler (multi-core processors). Çok çekirdekli işlemciler koşut mimarler (Parallel Computing).

İş parçacıklarının daha etkin ve daha hızlı çalışmasına imkan sağlayan Hyper-Threading teknolojisinin ardından tanıştığımız çoklu işlemciler, aynı yapı içinde birden çok işlemci bulunduran sistemler.

Peki 1 işlemci yerine 2 işlemci koymak hızımızı 2 katına çıkartmak demek oluyor mu? Maalesef hayır. Yani 2Ghz hızındaki iki işlemciyi bir araya getirirseniz, 4 Ghz’lik bir cihaz elde edemiyorsunuz.

Amdahl Kuralına göre bir program, koşut işletildiği zaman, programın koşut çalıştırılabilen oranına göre hızlanabilir. Programınız ne kadar büyük kısmı koşut çalışabiliyorsa o ölçüde çoklu işlemcilerden faydalanabilirsiniz. Örneğin programınızın %80’i koşut ve sizin 4 işlemciniz var. Programınız sıralı çalıştığında 10 birim zamanda çalışacak ise, 4 işlemciyle çalıştığınızda 4 birim zamanda çalışır. Ve bu süreye threading den kaynaklı ek süreyi de (overhead) eklemeniz gerekir.

Sonuç olarak çoklu işlemciden yaralanabilmenin yolu koşut çalışabilir program kesimlerinin artırılmasından geçiyor.

Bunun da ötesinde bir bulgu var ki, bence çok daha ilginç. Önerinin esası şuna dayanıyor. İşlerimizi hep sıradan nasıl gerçekleştireceğimizi düşünüp, daha sonra bunları koşut işletilebilir hale getirme eğilimindeyiz. Ama birçok iş varki, temelden koşut çözüm sunduğunuzda, sıralı olarak sunacağınızdan daha etkin bir çözüm sunuluyor. Bu kısaca şu demek; 4 GHz’lik bir işlemciyle yapacağınız işi, 4 tane 1 Ghz ‘lik işlemciyle daha çabuk halletmeniz. Buna Gustafson Kanunu (Gustafson’s Law) deniyor.

İşin özü artık bir sistemin hızından faydalanabilmek için programınızın, işlemcilere göre şekillenmesi gerekiyor. Birinci basamak ve en basit kesim Amdahl yasası gereği, programınızın mümkün olduğunca koşut çalıştırabilir kesimlere dönüştürmeniz. Buna ‘basit’ demek elbette ki haksızlık. Çünkü eşzamanlı (concurrent) programlama hiçbir zaman kolay bir iş olmamıştır. Kodlamasının zorluğu bir yana, hata ayıklaması insanı bezdirir. Bu kolaylık ikinci basamağa kıyasla verilmiş benzetme. İkinci basamak koşut düşünebilme yeteneği. Olaylara temelden koşut bakabilme. O zaman sonuçlar daha da inanılmaz olabilir. Gustafson’a göre 2+2 = 5; eğer işinizi iyi yaparsanız.

Referanslar:

http://www.intel.com/intelpress/samples/MCP_SampleCh01.pdf

http://www.systemshootouts.org/processors.html

http://www.gotw.ca/publications/concurrency-ddj.htm

Intel

wiki