Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr BEOWULF KÜMELERİ Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr 20.11.2018 Akademik Bilişim 2007 , Kütahya.

Benzer bir sunumlar


... konulu sunumlar: "Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr BEOWULF KÜMELERİ Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr 20.11.2018 Akademik Bilişim 2007 , Kütahya."— Sunum transkripti:

1 Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr
BEOWULF KÜMELERİ Niyazi ELVAN – YTÜ Akademik Bilişim 2007 , Kütahya

2 Akademik Bilişim 2007 , Kütahya
İÇERİK Süperbilgisayar ve Beowulf Nedir ? Beowulf mimarisi ve sistem tasarımı Beehive projesi Görev yönetimi ( Torque,Maui ) Sistemin izlenmesi (Ganglia) Paralel Programlama LAM / MPI MPI fonksiyonları ve veri türleri Örnek uygulamalar Sorular Akademik Bilişim 2007 , Kütahya

3 Akademik Bilişim 2007 , Kütahya
SÜPERBİLGİSAYAR Normal bilgisayarlardan daha yüksek işlem yapabilme kapasitesi olan bilgisayar Dünyanın en yüksek işlem gücüne sahip bilgisayar sistemi Akademik Bilişim 2007 , Kütahya

4 Akademik Bilişim 2007 , Kütahya
SÜPERBİLGİSAYARLAR 1. BlueGene/L , IBM İşlem gücü : 360 teraflop Bellek : 32 tebibyte (2^40 byte) 65536 adet çift işlemcili uç birim 32x32x64 3D network (Torus) Akademik Bilişim 2007 , Kütahya

5 Akademik Bilişim 2007 , Kütahya
SÜPERBİLGİSAYARLAR Akademik Bilişim 2007 , Kütahya

6 Akademik Bilişim 2007 , Kütahya
Akademik Bilişim 2007 , Kütahya

7 Akademik Bilişim 2007 , Kütahya
Akademik Bilişim 2007 , Kütahya

8 Akademik Bilişim 2007 , Kütahya
SÜPERBİLGİSAYARLAR 2. RedStorm , Cray Inc. İşlem gücü : 40 teraflop Bellek : 30 terabytes 10368 AMD işlemcili uç birim 240 terabyte disk Akademik Bilişim 2007 , Kütahya

9 Akademik Bilişim 2007 , Kütahya
SÜPERBİLGİSAYARLAR 3. BGW, IBM İşlem gücü : 10 teraflop Bellek : 30 terabytes 4096 tek işlemcili uç birim Akademik Bilişim 2007 , Kütahya

10 Akademik Bilişim 2007 , Kütahya
SIRADA NE VAR ??? 1 Petaflop İşlem gücü ABD Ulusal Bilim Vakfı Akademik Bilişim 2007 , Kütahya

11 Akademik Bilişim 2007 , Kütahya
BEOWULF NEDİR ? İngiliz edebiyatının bilinen en eski yazılı eseridir. Hikayede adı geçen kahraman yarı insan yarı kurt bir varlık. “Yüzüklerin Efendisi” nin yazarının esinlendiği efsane kahramanı Akademik Bilişim 2007 , Kütahya

12 Akademik Bilişim 2007 , Kütahya
BEOWULF NEDİR ? Düşük maliyetli Yüksek işlem gücüne sahip Çoklu yapısı son kullanıcıdan soyutlanmış Birden fazla bilgisayardan oluşan Linux tabanlı işletim sistemi yüklü Akademik Bilişim 2007 , Kütahya

13 Akademik Bilişim 2007 , Kütahya
BEOWULF KÜMELERİ Uç Düğüm 1 A N H T R Uç Düğüm 2 Uç Düğüm 2 Ana Düğüm Ana Düğüm Uç Düğüm 3 Uç Düğüm 3 . Uç Düğüm n Uç Düğüm n Akademik Bilişim 2007 , Kütahya

14 Akademik Bilişim 2007 , Kütahya
BEEHIVE PROJESİ Donanım Yapısı Düğüm ( 5 adet ) IBM Netfinity 6000R 2 x PIII Xeon 700 Mhz CPU 1.5 GB bellek Min 72 GB SCSI disk 1 Gbps NIC Anahtarlama birimi Cisco G Akademik Bilişim 2007 , Kütahya

15 Akademik Bilişim 2007 , Kütahya
BEEHIVE PROJESİ Disk Mimarisi / /home /usr /lib /tmp bee00 NFS / /home /usr /lib /tmp bee01 . Akademik Bilişim 2007 , Kütahya

16 Akademik Bilişim 2007 , Kütahya
BEEHIVE PROJESİ Ağ Yapısı beehive.yildiz.edu.tr bee00 A N H T R L M B İ bee01 INTERNET bee02 bee03 bee04 Akademik Bilişim 2007 , Kütahya

17 Akademik Bilişim 2007 , Kütahya
BEEHIVE PROJESİ Kurulum ( Ana düğüm) Debian base sistem Apache2 NFS sunucu Samba sunucu DHCP sunucu Winbind rsh sunucu Lam MPI Torque (pbs_server, pbs_mom) Maui Ganglia (gmetad, gmond) Akademik Bilişim 2007 , Kütahya

18 Akademik Bilişim 2007 , Kütahya
BEEHIVE PROJESİ Kurulum ( Uç düğüm) Debian base sistem NFS istemci DHCP istemci rsh sunucu Lam MPI Torque (pbs_mom) Ganglia (gmond) Akademik Bilişim 2007 , Kütahya

19 Akademik Bilişim 2007 , Kütahya
BEEHIVE PROJESİ Yapılandırma (ana düğüm) NFS sunucu (/etc/exports) DHCP sunucu Yapılandırma (uç düğüm) Servislerin açılış sırası Şifre sorgulaması olmadan rsh bağlantısı /etc/fstab Akademik Bilişim 2007 , Kütahya

20 Akademik Bilişim 2007 , Kütahya
BEEHIVE PROJESİ Yeni uç birimlerin eklenmesi İlk uç birimin diski dd komutu ile diğer birimin diskine kopyalanır. # dd if=/dev/sda of=/dev/sdb Disk kendi sistemine takılır ve sistem başlatılır. Akademik Bilişim 2007 , Kütahya

21 Akademik Bilişim 2007 , Kütahya
BEEHIVE PROJESİ Avantajlar Yönetim kolaylığı /home paylaşımı /usr ve /lib paylaşımı Ölçeklenebilirlik Disk kopyalama ile hızlı çoğullama Akademik Bilişim 2007 , Kütahya

22 Beowulf Cluster Yönetimi
Yasin Bahtiyar – YTÜ Akademik Bilişim 2007 , Kütahya

23 Sistem yapısı nasıl olmalı
Yüksek başarımlı hesaplama Paralel işlem mimarisi Çoklu kullanıcı sistemi Paralel işlem/Sıralı Görev Ucuz maliyet Akademik Bilişim 2007 , Kütahya

24 BeeHive Mimarisi / Cluster Yönetimi
Torque 2.1.6 Lam-MPI 7.1.2 Maui 3.2.6p19 Ganglia 3.0.4 Akademik Bilişim 2007 , Kütahya

25 Akademik Bilişim 2007 , Kütahya
Torque Nedir? Terascale Open-Source Resource and QUEue Manager Cluster Resources Inc. tarafından üretildi. Bir kaynak ve kuyruk yöneticisi. OpenPBS temel alınarak ortaya çıkarılmıştır. Akademik Bilişim 2007 , Kütahya

26 Akademik Bilişim 2007 , Kütahya
OpenPBS nedir? PBS: Portable Batch System 1990 larda NASA için geliştirilmiştir. Altair Grid Tech. Tarafından ortaya çıkarılmıştır. Artık daha fazla desteklenmeyen bir proje Kurumsal türevi PBS Pro (Altair) Akademik Bilişim 2007 , Kütahya

27 Akademik Bilişim 2007 , Kütahya
Torque = OpenPBS+ OpenPBS v üzerine geliştirilmiş bir proje. 15 TF/2500 CPU yönetebilir. Geliştirilmiş hata kontrolü Geliştirilmiş server2mom iletişim protokolü OpenPBS üzerine patch Akademik Bilişim 2007 , Kütahya

28 Akademik Bilişim 2007 , Kütahya
Torque Bileşenleri PBS Server:pbs_server Kaynak ve kuyruk yönetimini yapan temel bileşen Her clusterda sadece bir tane (sunucu uç) Akademik Bilişim 2007 , Kütahya

29 Akademik Bilişim 2007 , Kütahya
Torque Bileşenleri PBS MOM:pbs_mom Her bir uçta yer alır Uç hakkında bilgi verir. pbs_server dan gelen istekleri yerine getirir Akademik Bilişim 2007 , Kütahya

30 Akademik Bilişim 2007 , Kütahya
Torque Bileşenleri PBS Scheduler:pbs_sched Sunucuda çalışır Bir kuyruk yöneticisidir Kuyruğa iş ekleme, işi bekletme, iptal etme gibi fonksiyonları yerine getirir Akademik Bilişim 2007 , Kütahya

31 Akademik Bilişim 2007 , Kütahya
Torque Kurulumu tar -xzvf torqueXXX.tar.gz cd torqueXXX ./configure make make install make packages Akademik Bilişim 2007 , Kütahya

32 Akademik Bilişim 2007 , Kütahya
Torque Kurulumu Mpi tm boot module için: ln -s /usr/local/lib/libtorque.a /usr/local/lib/libpbs.a ln -s /usr/local/lib/libtorque.la /usr/local/lib/libpbs.la Akademik Bilişim 2007 , Kütahya

33 Torque Konfigürasyonu
pbs_server # pbs_server –t create # qmgr (server konfigurasyonu) $TORQUE_HOME/server_priv/nodes Akademik Bilişim 2007 , Kütahya

34 Torque Konfigürasyonu
pbs_mom $TORQUE_HOME/server_name $TORQUE_HOME/mom_priv/config # pbs_mom (her bir uç için) # qterm -t quick # pbs_server Kullanıcılar için şifresiz ssh Akademik Bilişim 2007 , Kütahya

35 Akademik Bilişim 2007 , Kütahya
Torque Komutları Komut Açıklama momctl MOM (node execution) yönetimi / durdurulması pbsnodes Uç bilgisayardan bilgi alma – uç bilgisayar yönetimi qalter Kuyruktaki işlerin özelliklerinin değiştirilmesi qdel Kuyruktaki işlerin silinmesi qhold Kuyruktaki işin bekletilmesi qmgr manage policies and other batch configuration qrls Kuyruktaki işin devam ettirilmesi qrun Kuruktaki bir işin başlatılması qsub Kuyruğa yeni iş eklenmesi qstat Kuyruktaki iş hakkında bilgi alınması qterm Pbs server in durdurulması tracejob TORQUE loglarına göre bir işin takip edilmesi Akademik Bilişim 2007 , Kütahya

36 Lam-Mpi rsh boot module
Akademik Bilişim 2007 , Kütahya

37 Akademik Bilişim 2007 , Kütahya
Lam-Mpi tm boot module Akademik Bilişim 2007 , Kütahya

38 Lam-Mpi (tm boot) & Torque
lamd pbs_mom tarafından yönetilir Daha hızlı lamboot Bu desteği sağlamak için: ./configure --with-boot=tm make && make install Akademik Bilişim 2007 , Kütahya

39 Akademik Bilişim 2007 , Kütahya
Ganglia Dağıtık sistemleri izleme yazılımı Cluster ve grid yapılarında kullanılır gmond gmetad Ganglia web arayüzü rrdtool kullanarak xml şemalarını grafiklere çevirir. Akademik Bilişim 2007 , Kütahya

40 Akademik Bilişim 2007 , Kütahya
gmond Her bir uç için gerekli bilgileri alır ve xml şeması olarak yayın yapar /etc/init.d/ganglia-monitor /etc/gmond.conf name “BeeHive” owner “YTU” trusted_hosts //(gmetad) Akademik Bilişim 2007 , Kütahya

41 Akademik Bilişim 2007 , Kütahya
gmetad gmond lerden aldığı xml şemalarından bir rrd veritabanı oluşturur. Genellikle sadece sunucuda çalışır. /etc/init.d/gmetad Akademik Bilişim 2007 , Kütahya

42 Akademik Bilişim 2007 , Kütahya
gmetad /etc/gmetad.conf data_source "bee00" bee00 data_source "bee01" bee01 data_source "bee02" bee02 data_source "bee03" bee03 data_source "bee04" bee04 gridname "YTU" Akademik Bilişim 2007 , Kütahya

43 Akademik Bilişim 2007 , Kütahya
Ganglia Web Frontend Rrd veritabanındaki bilgilere göre bir rapor oluşturan web arabirimidir. rrdtool kullanır. Akademik Bilişim 2007 , Kütahya

44 Akademik Bilişim 2007 , Kütahya
Maui Scheduler Bir scheduler, aslında kuyruk yöneticisi olarak çalışan bir kullanıcının yaptığı işleri yapar. Kaynak yöneticisine ne yapacağını söyler. İleri seviye scheduler.pbs_sched den daha iyi. Kaynak yönetimini optimize eder Akademik Bilişim 2007 , Kütahya

45 Akademik Bilişim 2007 , Kütahya
Maui kurulumu > gtar -xzvf maui-<VERSION>.tar.gz > cd maui-<VERSION> > ./configure > make > sudo make install Akademik Bilişim 2007 , Kütahya

46 Akademik Bilişim 2007 , Kütahya
Konfigürasyon vi /usr/local/maui/maui.cfg SERVERHOST bee00 ADMIN root RMCFG[BEE00] TYPE=PBS Akademik Bilişim 2007 , Kütahya

47 Maui komutlarından bazıları
Açıklama canceljob İşi iptal eder checkjob İş durumu hakkında ayrıntılı bilgi verir checknode Uç durumu hakkında ayrıntılı bilgi verir diagnose Kaynaklar, iş yükü ve scheduling ile ilgili rapor verir. mjobctl İş kontrolu ve modifikasyon runjob Bir işi anında çalıştırmak için kullanılır showconfig Scheduler konfiguresyonunu gösterir showq Kuyruk hakkında bilgi verir showres Rezervsyonlar hakkında bilgi verir showstart Tahmini olarak bir işin ne zaman başlayacapı konusunda fikir verir showstate Kaynakların durumunu gösterir Showstats Kullanım istatistiklerini gösterir Akademik Bilişim 2007 , Kütahya

48 Eş Zamanlı (Concurrent) Programlama
Z. Cihan TAYŞİ Akademik Bilişim 2007 , Kütahya

49 Akademik Bilişim 2007 , Kütahya
Konu Başlıkları Eş zamanlı programlama nedir Eş zamanlılık modelleri Eş zamanlı program tasarımı LAM – MPI Örnek uygulamalar Akademik Bilişim 2007 , Kütahya

50 Eş Zamanlı Programlama
1960’larda ortaya atılmıştır. Channels, Device controller Bir işin birden fazla parçaya bölünmesi Parçaların farklı süreçler tarafından işlenmesi Akademik Bilişim 2007 , Kütahya

51 Eş Zamanlılık Modelleri
Multi-Threaded programlama Posix Threads, pthreads OpenMP Parallel programlama Shared Memory Dağıtık (Distributed) programlama Message Passing Interface, MPI Parallel Virtual Machine, PVM Akademik Bilişim 2007 , Kütahya

52 Eş Zamanlı Program Tasarımı
Problemin analiz edilmesi Problemin parçalara ayrılması (Partitioning) Problem parçaları arasındaki iletişim Senkronizasyon (Synchorization) Yük dağılımı Eş zamanlı programlamanın limitleri ve maliyeti Akademik Bilişim 2007 , Kütahya

53 Akademik Bilişim 2007 , Kütahya
Problem Analizi Eş zamanlı hesaplama Matris işlemleri N-Body problemi Seri hesaplama Fibonacchi sayıları F(k + 2) = F(k + 1) + F(k) 1, 1, 2, 3, 5, 8, 13, 21 Akademik Bilişim 2007 , Kütahya

54 Problemin Parçalara Ayrılması
Veriye göre parçalama (Domain Partitioning) Akademik Bilişim 2007 , Kütahya

55 Problemin Parçalara Ayrılması
Fonksiyona göre parçalama (Functional Partitioning) Akademik Bilişim 2007 , Kütahya

56 Problem Parçaları Arası İletişim
Parçalar arasında iletilecek veri miktarı Verinin iletim süresi parçanın gerçekleştirilme süresine göre çok az olmalı Parçalar arası iletişimin sıklığı Fiziksel iletişim hızı İletişim Tipi Senkron (blocking) Asenkron (non-blocking) Akademik Bilişim 2007 , Kütahya

57 Akademik Bilişim 2007 , Kütahya
Senkronizasyon Bariyer Bariyere ulaşan görev, diğer tüm görevler bariyere ulaşana kadar bekler. Tüm görevler bariyere ulaştığında sekronizasyon işlemi gerçekleştirilir. Lock / semaphore Ortak kaynakların düzgün kullanımı içindir Bir görev kaynağı kullanırken diğer görevlerin beklemesi sağlanır. Akademik Bilişim 2007 , Kütahya

58 Akademik Bilişim 2007 , Kütahya
Yük Dağılımı Yüklerin görevler arasında eşit dağıtılması Dizi ve Matris işlemleri Yüklerin dinamik olarak dağıtılması N-Body problemi Akademik Bilişim 2007 , Kütahya

59 Eş Zamanlı Programlama Maliyetleri
Karmaşıklık Uygulama, Haberleşme, Senkronizasyon Taşınabilirlik Programlama arayüzleri Ölçeklenebilirlik ( Scalability) Geliştirilen algoritma Altyapı Kaynak İhtiyacı Akademik Bilişim 2007 , Kütahya

60 Akademik Bilişim 2007 , Kütahya
Neden MPI ??? MPI çeşitli kurum ve kişilerin katılımıyla oluşturulmuş olan bir standart. Değişik kurumlar tarafından geliştirilen farklı versiyonları mevcuttur. MPICH LAM-MPI Open MPI Taşınabilir (Portable) bir yapıya sahiptir. Tamamen asenkron iletişim özelliğine sahiptir. Homojen yapılarda çalışmak üzere tasarlanmış Akademik Bilişim 2007 , Kütahya

61 Akademik Bilişim 2007 , Kütahya
LAM – MPI Ohio Supercomputing Center tarafından geliştirilmeye başlandı. Tasarımında görev alanların birçoğu Notre Dame Üniversitesi, Bilimsel Hesaplama Laboratuarına (The Laboratory of Scientific Computing) geçti. Notre Dame Üniversitesine geçildikten sonra 6.2b ve 6.3 versiyonları kullanıma sunuldu. 2001 yılında, LSC Indiana Universitesi’ne geçti. Grubun ismi Open Systems Laboratory (OSL) olarak değişti. 7.1.2 versiyonu kullanıma sunuldu. Bu grup şu anda Open MPI adında yeni bir MPI sürümü üzerinde çalışmaktadır. Akademik Bilişim 2007 , Kütahya

62 Akademik Bilişim 2007 , Kütahya
MPI Fonksiyonları int MPI_Comm_size(MPI_Comm comm,int *size) int MPI_Comm_rank(MPI_Comm comm,int *rank) int MPI_Recv(void *buf, int count, MPI_Datatype dtype, int src, int tag, MPI_Comm comm, MPI_Status *stat) int MPI_Send(void *buf, int count, MPI_Datatype dtype, int dest, int tag, MPI_Comm comm) int MPI_Bcast(void *buff, int count, MPI_Datatype datatype, int root, MPI_Comm comm) int MPI_Scatter(void *sbuf, int scount, MPI_Datatype sdtype, void *rbuf, int rcount, MPI_Datatype rdtype, int root, MPI_Comm comm) int MPI_Gather(void *sbuf, int scount, MPI_Datatype sdtype, void *rbuf, int rcount, MPI_Datatype rdtype, int root, MPI_Comm comm) Akademik Bilişim 2007 , Kütahya

63 Akademik Bilişim 2007 , Kütahya
Örnek – I “Hello World” #include <stdio.h> #include <mpi.h> int main ( int argc, char *argv[] ) { int myrank, size; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &myrank); MPI_Comm_size(MPI_COMM_WORLD, &size); if (myrank == 0) { printf("I'm the master\n"); }else { printf("I'm slave (%d)\n",myrank); } MPI_Finalize(); return 0; Akademik Bilişim 2007 , Kütahya

64 Örnek – II “Matris Çarpımı”
Matris boyutları A Matrisinin boyutları : 4000 x 100 B Matrisinin boyutları : 100 x 40 Problemin bölünmesi Birinci matrsinin satırları işlemler arasında paylaştırılabilir. İşlemler arası iletişim Bir işlem yönetici rolü üstlenmeli Her işleme kendi paylarına düşen satırlar gönderilmeli Her işleme B Matrisinin tamamı gönderilmeli Her işlemden sonuçlar alınmalı Akademik Bilişim 2007 , Kütahya

65 “Matris Çarpımı” – 1. Çözüm Yönetici İşlem
Hesaplama Yapılacak Matrsilerin Oluşturulması if(rank==0) { // Yonetici process rowspp = M1_RSIZE / size; offset = rowspp; for (i=1; i<size; i++) { MPI_Send(&rowspp, 1, MPI_INT, i, TAG1, MPI_COMM_WORLD); datacount = rowspp*M1_CSIZE; MPI_Send(&m1[offset][0], datacount, MPI_DOUBLE, i, TAG1, MPI_COMM_WORLD); datacount = M2_RSIZE*M2_CSIZE; MPI_Send(&m2, datacount, MPI_DOUBLE, i, TAG1, MPI_COMM_WORLD); offset = offset + rowspp; } Kendi Payına Düşen Kısmın Hesaplanması datacount = rowspp * M2_CSIZE; for(i=1;i<size;i++) { MPI_Recv(&mr[offset][0], datacount, MPI_DOUBLE, i, TAG2, MPI_COMM_WORLD, &status); printf("Calculation finished \n"); Akademik Bilişim 2007 , Kütahya

66 “Matris Çarpımı” – 1. Çözüm Diğer İşlemler
}else { // Diger islemler MPI_Recv(&rowspp, 1, MPI_INT, 0, TAG1, MPI_COMM_WORLD, &status); datacount = rowspp*M1_CSIZE; MPI_Recv(&m1, datacount, MPI_DOUBLE, 0, TAG1, MPI_COMM_WORLD, &status); datacount = M2_RSIZE*M2_CSIZE; MPI_Recv(&m2, datacount, MPI_DOUBLE, 0, TAG1, MPI_COMM_WORLD, &status); Kendi Payına Düşen kısmın Hesaplanması datacount = rowspp * M2_CSIZE; MPI_Send(&mr, datacount, MPI_DOUBLE, 0, TAG2, MPI_COMM_WORLD); } Akademik Bilişim 2007 , Kütahya

67 “Matris Çarpımı” – 2. Çözüm
int main ( int argc, char *argv[] ) { int i,j,k; int rowspp, offset, datacount; int rank,size; double sum; double m1[M1_RSIZE][M1_CSIZE], m2[M2_RSIZE][M2_CSIZE], mr[M1_RSIZE][M2_CSIZE]; MPI_Init(&argc, &argv); MPI_Comm_rank(MPI_COMM_WORLD, &rank); MPI_Comm_size(MPI_COMM_WORLD, &size); if(rank==0) {// Master process Matrisleri oluştur. rowspp = M1_RSIZE / size; printf("rowspp : %d\n",rowspp); offset = rowspp; } Akademik Bilişim 2007 , Kütahya

68 “Matris Çarpımı” – 2. Çözüm
MPI_Bcast(&rowspp, 1, MPI_INT, 0, MPI_COMM_WORLD); datacount = M2_RSIZE*M2_CSIZE; MPI_Bcast(&m2, datacount, MPI_DOUBLE, 0, MPI_COMM_WORLD); datacount = rowspp*M1_CSIZE; MPI_Scatter(&m1, datacount, MPI_DOUBLE, &m1, datacount, MPI_DOUBLE, 0, MPI_COMM_WORLD); Kendi Payına Düşen kısmın Hesaplanması datacount = rowspp * M2_CSIZE; MPI_Gather(&mr, datacount, MPI_DOUBLE, &mr, datacount, MPI_DOUBLE, 0, MPI_COMM_WORLD); MPI_Finalize(); return 0; } Akademik Bilişim 2007 , Kütahya

69 Performans Karşılaştırmaları
Akademik Bilişim 2007 , Kütahya

70 Akademik Bilişim 2007 , Kütahya
SORULAR ??? Akademik Bilişim 2007 , Kütahya


"Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr BEOWULF KÜMELERİ Niyazi ELVAN – YTÜ niyazi@yildiz.edu.tr 20.11.2018 Akademik Bilişim 2007 , Kütahya." indir ppt

Benzer bir sunumlar


Google Reklamları