2014 yılında Tübitak OPY Samsun Bölgesine davet edilen projemiz: “Yeşil Kod”

A (195x120)

Sunucu tabanlı web yazılımlarının (PHP, ASP, JSP vs) çalıştığın donanımın kaynaklarını verimli kullanarak, dinamik web sitelerinin web tarayıcısına yüklenme süresini azaltarak kullanıcılarına daha hızlı hizmet vermesini sağlayacak bir algoritma tasarlamak ve aynı zamanda elektrik enerjisi tasarrufunda bulunmaktır.

[Yükleme bulunamadı.]

Kullanılan Yöntemler ve İşlemler

Bizler bu araştırma çalışmasında yazılımların enerji verimliğini artırarak, üzerinde koştuğu donanımların daha az enerji tüketmesini sağlayacak yöntemler üzerinde çalıştık. Sistem yazılımları, uygulama yazılımları ve web yazılımları gibi birçok sınıflandırma içerisinde, dünyada kullanıcı sayısı en fazla olan web yazılımları olduğu için bu alana odaklanmaya karar verdik. Bu yazılım kategorisinde elde edilen başarımın toplam faydası daha yüksek olacaktır.

Biz bu projede herhangi bir tür sunucu taraflı web yazılımına kolayca entegre edilebilecek bir ara katman tasarladık. Bu katman kullanıcı ile sunucu yazılımı arasında durarak istemcinin taleplerini çok daha hızlı yanıtlamakta ve sistem kaynaklarının kullanımını dolayısı ile elektrik tüketimini düşürmektedir.

yesil_kod2

Gözlemler, Veriler ve Bulgular

Sistem yazılımlarını incelediğimizde bunların çekirdek, aygıt sürücüsü (software drivers), yardımcı (utility) yazılımlar ile grafik alt sistemi sınıflandırması gibi bileşenlerden oluştuğunu gördük. Bu yazılımların performans/verimlilik geliştirme açısından incelediğimizde bunların çoğunlukla ticari şirketler bünyesinde kapalı olarak geliştirilen (doğrudan müdahale edilemeyen) bilgisayar yazılımları olduğunu fark ettik.
Bu proje ile öncelikle seçtiğimiz yazılım alt sınıfının en favori üyelerini, yazılım kod satırlarının işletilme sıklığı açısından başarım testlerine tabi tuttuk. Kendi kurduğumuz laboratuvar ortamında, değişen yükler altındaki yazılımların, işlemci zamanı açısından tükettiği enerji miktarları açısından birçok ölçümler yaptık ve aynı sınamaları geliştirdiğimiz yazılımı ara katman olarak kullanarak tekrarladık. Daha sonra elde ettiğimiz sonuçları dünya ölçeğinde oluşturduğumuz bir örnek uzayı kullanarak ölçeklendirdik.

<?php
// istek yapılan URL'yi oluştur
$istenen_url = 'http://'.$_SERVER[HTTP_HOST].$_SERVER[REQUEST_URI];
// İstek yapılan URL için kullanılacak kaşe dosyası
$depo_patika = dirname(__FILE__).'/depo/'.md5($istenen_url).'.yesil';
// Depo dosyası mevcutsa oku, tarayıcıya gönder ve bitir
if (file_exists($depo_patika))
die(file_get_contents($depo_patika));
// Bu fonksiyon çıktı tamponunu (output_buffer)
// bir disk dosyasına kaydeder.
function sayfayi_depola($cikti_tamponu)
{
global $depo_patika;
// Depo dosyası mevcut değilse oluştur
if (!file_exists($depo_patika)){
file_put_contents($depo_patika, $cikti_tamponu);
}
return $cikti_tamponu;
}
// Çıktı tamponu tarayıcıya aktarılmadan önce
// <sayfayi_depola> alt yordamına gönder
ob_start('sayfayi_depola');
?>

Sonuç

Modern Dünya şartlarında, mevcut enerji kaynaklarının azalması ve artan enerji ihtiyacını karşılama çabalarının zorluğu, beraberinde enerji tasarrufunun zorunluluğunu da gündeme getirmiş. Böylece yazılım verimliliği sağlanırken enerji tasarrufu da sağlayacak bu ara katman ile hem web ziyaretçisinin bekleme süresini asgariye indirdik hem de karbon salınımının düşürülmesine varıncaya kadar yüz milyonlarca dolar tasarruf sağlayabilecek bir algoritma ve yazlım geliştirdik.

Her web sitesine kolayca uygulanabilecek ara katman bir yazılım geliştirdik. Geliştirdiğimiz temel algoritmanın kullanılması noktasında yeterli bilinç düzeyi oluşturulabildiği takdirde dünyadaki açlık sorununun bile tamamen ortadan kaldırılabileceğini gördük.

CEVAP VER