HelloWord for Parallel Computing
/*
============================================================================
Name : ads.c
Author :
Version :
Copyright : Your copyright notice
Description : Hello MPI World in C
============================================================================
*/
#include
#include
#include "mpi.h"
int main(int argc, char* argv[]){
int my_rank; /* rank of process */
int p; /* number of processes */
int source; /* rank of sender */
int dest; /* rank of receiver */
int tag=0; /* tag for messages */
char message[100]; /* storage for message */
MPI_Status status ; /* return status for receive */
/* start up MPI */
MPI_Init(&argc, &argv);
/* find out process rank */
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
/* find out number of processes */
MPI_Comm_size(MPI_COMM_WORLD, &p);
if (my_rank !=0){
/* create message */
sprintf(message, "Hello MPI World from process %d!", my_rank);
dest = 0;
/* use strlen+1 so that '\0' get transmitted */
MPI_Send(message, strlen(message)+1, MPI_CHAR,
dest, tag, MPI_COMM_WORLD);
}
else{
printf("Hello MPI World From process 0: Num processes: %d\n",p);
for (source = 1; source < p; source++) {
MPI_Recv(message, 100, MPI_CHAR, source, tag,
MPI_COMM_WORLD, &status);
printf("%s\n",message);
}
}
/* shut down MPI */
MPI_Finalize();
return 0;
}
bu hazır geliyor Open MPI ile :) şuan labdayım yah
Software Engineering.
Categories
- vb (10)
- visual basic (10)
- Glassfish (9)
- java (8)
- Software engineering (5)
- pardus (4)
- C++ (3)
- Canım İstedi (3)
- OpenSolaris (3)
- jdk (3)
- Database (2)
- Mim (2)
- BackTrack (1)
- Basit Dos Komutları (1)
- Binary Tree Traversals (1)
- Dim (1)
- Hakkımda (1)
- Java öğren (1)
- Larry Ellison (1)
- Msn (1)
- Pardus geliştircileri toplantısı (1)
- Programlama Dilleri (1)
- Ramazan Bayramı (1)
- Steve Jobs (1)
- Streaming (1)
- VritualBox (1)
- Windows (1)
- film (1)
- merkez bankası (1)
- parallel Computing (1)
- virüs (1)
- xml (1)
- yazılım mühendisliği (1)
Blog Archive
Links
/*
============================================================================
Name : lab.c
Author :
Version :
Copyright : Your copyright notice
Description : Array in elemanlarını toplayan C kodu
============================================================================
*/
#include
#include
#include "mpi/mpi.h"
int main(int argc, char* argv[]){
int my_rank; /* rank of process */
int p; /* number of processes */
int i;
int allsum =0;
MPI_Init(&argc, &argv);
MPI_Comm_rank(MPI_COMM_WORLD, &my_rank);
MPI_Comm_size(MPI_COMM_WORLD, &p);
int vector[10];
int arr[500];
int arrr[500];
int as = 500 / p;
if (my_rank == 0){
for (i = 0; i < 500; i++)
arr[i] = i;
}
MPI_Scatter(arr, as, MPI_INTEGER, arrr, as, MPI_INTEGER, 0, MPI_COMM_WORLD);
int sum = 0;
for (i = 0; i < as; i++)
sum += arrr[i];
printf("Myrank: %d, sum: %d\n", my_rank, sum);
MPI_Reduce(&sum, &allsum, 1, MPI_INTEGER, MPI_SUM, 0, MPI_COMM_WORLD);
//MPI_Gather(&sum, 1, MPI_INTEGER, vector, 1, MPI_INTEGER, 0, MPI_COMM_WORLD);
if (my_rank == 0)
{
printf("%d ", allsum);
}
MPI_Finalize();
return 0;
}
Etiketler: parallel Computing
Öğrenci seçme ve yerleştirme sınavı yapıldı. Sonrasında tercihler yapıldı. kimse bir yerlere yerleşemedi. Sırada ne var ek yerleştirmeler. Bugün bana gelen bir maille bölümüm hakkında Yani Yazılım Mühendisliği hakkında bir yazı yazmam gerektiğin ve benden sonra bu bölümü seçecekler için az da olsa bu yazının yol gösterici olması gerektiğini anladım.
Yazılım mühendisliği bölümünün daha önce yapılmış bir çok tanımı var genel anlamda “Yazılım Mühendisliği 1968 yılında NATO tarafından gerçekleştirilen bir konferans esnasında ortaya çıkan yeni bir kavram ve yeni bir mühendislik alanı olup, yazılım sistemlerinin mühendislik prensipleri çerçevesinde tasarımı, üretimi ve işletilmesini hedeflemektedir. Bilgisayar sistemleri artık günlük hayatın her alanında yoğun ve etkin bir şekilde kullanılmakta olduğundan, Yazılım Mühendisliği tüm disiplinlerde uygulamaları olan bir alan.
- Kullanıcı ihtiyaçlarını analiz ederek, uygun çözümlere tasarlayabilmek,
- Kullanıcının belirlediği fakat genelde sürtüşmelere yol açan zaman, maliyet, kullanılabilirlik noktalarında uzlaşma sağlayabilmek,
- Mühendislik yaklaşımlarını kullanırken etik, sosyal, yasal ve ekonomik ilgileri bütünleştirecek uygun çözümler tasarlamak.
- Yazılım tasarımı, geliştirilmesi, gerçekleştirimi ve doğrulanması için bir temel sağlayan mevcut teorileri, modelleri ve teknikleri anlamak ve uygulayabilmek.
- Yazılım geliştirme ortamında etkin olarak çalışmak, gerekli olduğunda liderlik yapabilmek ve kullanıcılarla iyi iletişim kurabilmek bir diğer deyişle proje yönetimi becerisi.
- İlgili alanlardaki gelişmeleri takip edip, uygulayabilmek” yazının tamamı için (http://www.csharpnedir.com/articles/read/?id=230)
Yazılım mühendisliği bilgisayar mühendisliğine nazar daha az donanım derslerine sahip ortak olarak alınan programlama derslerini yanı sıra daha çok bir yazılım mühendisliği müşterinin istediği veya ihtiyaç doğrultusunda en iyi şekilde nasıl yapılabilir? nasıl yönetilebilir? gibi dersleri içermektedir. 4 yıl boyunca bir yazılım mühendisliği bölümünden alınacak yazılım dersleri programı
1) SE 112 - Yazılım Mühendisliğine Giriş
2) İnsan Bilgisayar Etkileşimi
3) Yazılım Kalite Güvencesi
4) Sistem Yazılımının Sınanması ve Onaylanması
5) Yazılım Gereksinimleri Mühendisliği
6) Yazılım Tasarımı ve Mimarisi
7) Nesneye Dayalı Analiz ve Tasarım
8) Yazılım Proje Yönetimi
9) Sistem Modelleme ve Simülasyon
10) Büyük Ölçekli Sistem Yazılımı Geliştirme (www.atilim.edu.tr)
Gibidir. Bu derslerin konusu ve içeriği IEEE(http://ieeesb.gantep.edu.tr/intro.htm) tarafından hazırlanmaktadır.
İş imkanına gelince Yazılım mühendisliği bölümü Türkiye de çok yeni bir bölüm ve bu sene ilk mezunlarını verdi. Gün geçtikçe değerlenen bir bölümdür. Ama ne yazık ki Türkiye de ve genel anlamda oluşan krizden dolayı bilişim sektöründe de bir durgunluk söz konusu. Eleman sıkıntısı çok fazla ama iş yapan firma sayısı çok az. İş yapabilecek firma sayısı çok az. Birde bazı gerçekler var. Bugün firmalar 10 kuruşa bir iş yaptırmak yerine bu işin sertifikasını almış yada 2 yıllık bir programdan mezun olmuş elamana 3 kuruş verip ona yaptırmayı daha doğru buluyor. Buda mezunların iş bulma şansını birazda olsa aşağı çekiyor. Bir alanda uzmanda değil de her şeyden anlayan eleman çalıştırmaya daha az para vermeye çalışıyorlar. Bir başka gerçek bu gün büyük ölçekli yazılım firmalarında yine bir Türkiye gerçeği olan “torpil ”olayı çok fazla. Eğer size yardımcı olacak bir dayınız yoksa bu firmalar da çalışma imkanınız yok denecek kadar az. Bu durumda okul biter bitmez kurslara devam ediyor olabilirsiniz network, database veya yazılım alanında bir sertifika programına kaydolarak alacağınız bu belgelere den biriyle birazda olsa iş bulma şansınızı artırabilirsiniz. Sormak istedikleriniz için bana mail atabilirsiniz. Son olarak aşağıda Atılım Üniversitesi Yazılım Mühendisliği Bölümü Başkanı Sayın Ali YAZICI nın CNN Türk’e yapmış olduğu söyleşi var izlemenizi kesinlikle tavsiye ederim.
Herkese Kolay gelsin.
Mesut ALTINYAPRAK
2010.05.25 CNN Türk BaÅ�arıya DoÄ�ru Prof.Dr. Ali Yazıcı
Yükleyen atilim_universitesi. - Partiler, yurt hayatı ve diÄ�er üniversite videoları.
Etiketler: Software engineering, yazılım mühendisliği
Nesne yönelimli Programlama (Object-Oriented Programming) Tekniği ve C++
Bugün pek çok yüksek seviyeli programlama dilleri bu tekniği desteklemektedir. O yüzden bu yaz elimden geldiğince ana başlıklar dan yola çıkarak C++ nedir nedeğildir iyice ararşıtırırken öğrendiklerimide sizinle paylaşmak istedim. Şimdi genel özellikleriyle C++ diyelim ve başlayalım.
1- c++'ta Local değişkenlerin bildirimleri blokların başında yapılmak zorunda değildir. Yani
{} aç kapa yaptıktan sonra nerde isterseniz değişkenleri tanımlayabilirsiniz.
2- c++'ta Local değişkenin faaliyet alanı bildirim noktasından blok sonuna kadar olan bölgeyi kapsar. Ne olursa olsun bir blok içersinde aynı isimli birden fazla değişken bildirimi yapılamaz.
3- for döngüsünün birinci kısmında bildirim yapılabilir. Ve etkinliği for döngüsün içinde bulunduğu bloğun sonuna kadar etkilidir.
Örn: For( int i=0; i<=length; i++)
4- while ve if döngleri içersinde tanımlama yapılamaz.
5- DEFİNATİON için küçük bir örnek.
#include
#define SIZE 100
void main () {
for (int i=0; i
return 0;
}
6- if, for, switch, while gibi deyimlerden sonra blok açılmamış olsa bile gizli bir blogun açıldığı düşünülmelidir.
7- // ile satır sonuna kadar yorum yapılabilinir.
/* */ arasında kalan herşey yorum olarak kabul eder.
8- Çağrılan fonksiyon eğer çağıran fonksiyonun yukarısında tanımlanmamışsa fonksiyon prototipi zorunludur.
9-farklı parametre yapılarına sahip aynı isimli birden fazla fonksiyon tanımlanabilir.
Örn: void mesut (int x){ }
void mesut (void) {}
burada çağrılma (call) ifadesindeki parametre sayısı ve türü hangisine uygunsa o çağrılmış olur. Geri dönüş değerinin farklı olması aynı isimli fonksiyon yazmak için yeterli değildir.
Yani, geri dönüş değerleri farklı fakat parametre yapısı aynı olan birden fazla fonksiyon tanımlanamaz.
10- C++ derleyicisi aynı sayıda parametrelere sahip birden fazla aynı isimli fonksiyonun bulunması durumunda çağrılma ifadesine tür bakımından uygun bir fonksiyon bulamazsa bu durum “Ambiguity between fonk(int) and fonk (long) bunun bir diğer ismi iki anlamlılık hatasıdır.
Örneğin: fonksiyon float parametreyle çağrılmışsa ancak float parametreye sahip bir fonksiyon yoksa double parametreye sahip bir foksiyon tanımlanmışsa bu durumda double parametreye sahip olan foksiyon çağrılır.
11- tanımlanan ve çağrılan bir fonksiyon ismi .obj modül içersine yazılmak zorundadır. Buda içiersinde aynı isimli birden çok fonksiyon modülü içersine yazılamaz demeketir.
12- Dinamik bellek yönetimi new ve delete operatörleriyle yapılır. Ve bu malloc, claloc, realloc ve free fonksiyonlarıyla yapılabilir. Ancak bu fonksiyonlar OOP yönelimliprogramlama tekniği uygulayabilmek için tasarlanmıştır.
13- C++'ta dinamik olarak tahsis edilme potansiyelindeki boş bölgelere free store denilmektedir. C dilinde ise HEAP denir.
14- NEW Operatörü:
new(TÜR) [<[UZUNLUK]>]
new int
new char
new double [100] gibi
int *p;
p= new int;
Exam:
#include
#include
{
char *p;
p =new char[100];
cin>>p;
for(int i=0; i<100; i++);
cout<}
Exa: Tam olarak ad, soyad uzunluğu kadar bellekte yer ayıran fonksiyon
#include
#include
char *getname(void)
{
char *p;
char buf[100];
printf(”Name and Surname”);
gets(buf);
p=new char [strlen(buf)+1];
if(p==NULL){
printf(“Cannot allocate memory..\n”);
return 1;
}
strcpy (p.buf)
return p;
}
void main (){
char *p;
p=getname();
puts(p);
}
15- Delete operatörü new opratörü ile memory de yar açılmış olan blokların serbest bırakılması için kullanılır 2 şekilde kullanımı vardır
delete p; tek member için
delete [] p; birden fazla member için
16- Bir adresin farklı türden bir pointer'a ve adres olmayan bir bilginin bir pointer'a atanması durumu error olarak değerlendirilir. Yani adres işlemlerinde tür uyuşmazlığı C++'ta eror olarak değerlendirilir.
Örn;
void main (){
int s[10];
chat *t;
t=s ; // dediğin anda cannot conver int to char hatası alırsın.
Ama
t=(char *)s ; // hata vermez.
17- const bir değişkenin adresi ancak const bir pointer'a atanmalıdır.
const int x;
int *y;
const int *p;
y=&x; // HATALI dır.
p=&x;// DOĞRU dur.
18- const bildirimi ile yaratılmış bir değişken sabit ifadesi gibi işlem görür. Const bir değişken için yine bellekte yer ayrılır. Const ilk değeri aldığı Ya da atandığı andan itaberen o değişkeni kullanır.
Örn: const int MAX=y+8;
const int MIN=0;
x=MAX;
x=MIN;
const int SIZE =10;
int y[SIZE];
const değişken için bellekte yer ayrılır. Bu durumda const değişkenin adresi alınabilinir.
Void main (){
const SIZE=100;
int *p;
p=(int *)&SIZE;
*p=20;
printf(“%d/n”.SIZE);
}
19- Statik ömürlü değişkenlere sabit ifadesiyle ilk değer atama zorunluluğu yoktur. C'de vermek zorundayız. Çünkü static değişkenler il değer içersine yazılır. Exe dosyası içersinde yer alırlar. Bunun mümkün olabilmesi için verilen ilk değerin derleme aşamasında belirlenmiş olması gerekir. C++'ta static değişkenlere her türden öylesine bir değer verilebilinir. Bu değişkenler 0 ilk değeriyle amaç koda yazılırlar. Programın çalışma zamanı sırasında ve main fonksiyonundan önce ilk değerlerini alırlar.
Kendi alanımla alakısız bir yazı yazacağım.Bu haftasonu finallere girmeden önce hazır sınavlarda bitmişken ee bide şenlik haftası eğlenceye kapıldık umarım bunun rehaveti daha fazla sürmez :) hafta sonunu da eğlenerek geçireyim istedim. Ankarada tanınmış bir mekana gittim normalde içki içmem bir içki söyledim dursun önümde içmicem dedim, içmedim de ama ortama da ayak uydurdum :) ben ve bir abim vardı eğleniyorduk. kıpır kıpır canlı müzik her anında tempo tutarak keyifle geçiriyorduk. Mekan sahibi tanıdık olduğu için bize çok güzel ikramlarda bulundu meyve tabakları çerezler falan ağzınız sulanmasın tadımlık doyumluk değil di :) Neyse tam o noktada olay koptu bende ben nerdeyim ne yapıyorum ? diye sordum kendime kafamı kaldırıp etrafıma baktığım anda gerçekten güzel kızlar kendilerinden geçerseni eğleniyorlardı.Büyük bir çoğu mini etekli dekolteleriyle ve yanlarında erkek arkadaşlarıyla eee saat ilerledikçe alkolün de etkisiyle işin rengi iyiden iyiye değişmeye başlıyordu. Buda beni ilgilendirmiyor. Peki ne anlatmaya çalışıyosun hayu sen diye bilirsiniz. Kızlar bir yandan erkek arkdaşlarına kur yaparken bir yandan da başkalarını kesmeye devam ediyorlardı. Evetttt doğru söylüyorum. Onda aklıma bi film geldi bilenleriniz vardır mutlaka karındeşen jack gerçek bir hikayedir. filmde katil kurbanlarını ozamanın en pahalı iki şeyi ile kandırıyordu 1.Üzüm 2. ise Şarap ve o an gördüğüm meyve tabağı ile manzara karşısında dedimki bunun filmedki rollerle arasında ki fark nedir ?acaba kızlarımız bunlara kanıptamı buraya geliyorlar ve sevmedikleri istemedikleri halde birileriyle birlikte olmaya mı çalışıyorlar? Bu nesif tabaklar için.Bi an aklıma filmediki kurbanlar dan farksız oldukları geliyordu. Nasıl diceksiniz ? jack kurbanlarını bu dünya lezetlerini tadtırdıktan sonra öldürüyordu. Peki bizim jackler ne yapıyor. Öldürmüyorlar ellerinden bişelerini alıp "bir kız arkadaşımın tabiriyle kendimi paylaşacak kadar sevdim" gönderiyorlar sarhoş olan kızlarımız neleri kaybettiklernin farkında değiller uyanmıcaklar farkına varmıcaklar asla. Ama bigün biri gelip onlara neyi kaybettiklerini hatırlatana kadar. Bunu bütün kızlar için yazdığımı sanmayın ama bu yazı bir kaç kişi içinde değil.Umarım dünya da insanlar para, zevk,lezzet için onurlarını erdemlerini ayaklar altına aldırtmazlar.
Güç,Cesaret,Erdem= ZAFER. sonuç olarak film karalerinden çok ta uzak değil yaşananlar.
Etiketler: Canım İstedi
Evet başlığındanda anlaşılacağı üzere yazımız mülakata girmek üzerine olacak ama sakın yanlış anlmayın kitaplardan anladığımı anlatmayacağım. Tamamen başıma gelenleri paylaşacağım.Bugun bir firmaya mülakata gittim çok rahattım çünkü ben daha öğrenciyim bana hayır desler bile onların neye evet dediğini öğrenip bir daha hayır cevabıyla karşılaşmamak için gerekli tedbirleri alcaktım mülakattan çıktım bu yazıyı biran önce buraya yazmalıyım bunu paylaşmalıyım diye dolmuşta içim içimi yiyip durdu sonunda odamdayı ve bilgisayalırım karşımda ve başımdan geçenler
Okulda çok yorucu bir koşuşturmacanın ardından iyice hayattan bezmiş bi şekilde ama birazda bakımlı halimle bindin gölbaşı arabasına gitti Gazi Teknopark'a evet daha öncede bu yerde stajımı yapmıştım MAKROKOD da hemen onun karşısıydı bu kez gittiğim firma bi an eski şirketle göz göze geldim kapı açılınca içerden tanıdık diye heycanlıydım her neyse. Öncesinde mülakatta ne yapılmalıdır nasıl? davranılmalıdır ? Nasıl konuşulmalıdır gibi yüzlerce sayfa tavsiyede bulunan sayfları okudum ama bir yerde hataya düştügüm şey vardı bunlar oturuşa duruşa çok önem vermiyorlar bunlar senin nasıl bir kıvrak zekaya sahip oldugunla ilgileniyorlar burda açıkcası çok bir işime yaramadı neyse kapıyı çaldım girdim heyecanlanmışcam diye şartlandırmıştım kendimi beni saolsun patron karşıladı toplantı salonuna aldı 10 dakika sonra kendisi geldi ve elinde cv im in olduğu kağıt ve artık başlıyoruz. Sanki adranalin biraz yüseldi devam ediyoruz planlarından bahsediyorlar evet çok güzel sonra bana bir soru soruyor algorithma üzerine yaparmısın yok demek ne mümkün ben bildiğim unutmuşum evet yaparım dedim ama kendime güveniyorum soruyu sor kendine çözümünde söyle ve arkasından if while for tamam hepsi bu :) soru geldi bana asalsayıları ekrana basan bir program yaz :) basit dedim bi loop yaptım 1 3 5 7 9... diye gidiyor sence bir sorun varmı var nedir ? 9 asal değil hayda kim buldu dokuzu asala sayı nedir ne değildir derken ordan bir not aldık. sonra linux who çekmek nedir dendi via dana bahsedildi c++ dosya okuma dendi 30.000 satırlık bir text dosyasını word açamıyor bunu nasıl açarımmın cevabını öğrendim BCNF açılımını unuttum ama sonrasında hatıraladıgımda ha bu çok kalay dedim evet neyse çok etkin bi yazı değil araya telefon girdi böle heycanlıydı.
