亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? parallelmandelbort.c

?? 并行程序設(shè)計
?? C
字號:

#include <X11/Xlib.h>
#include <X11/Xutil.h>
#include <X11/Xos.h>
#include <X11/Xatom.h>
#include "mpi.h"
#include <stdio.h>
#include <stdlib.h>
#include <time.h>
#include "X11/bitmaps/icon"

main(int argc,char **argv)
{	double t1,t2;
	float inp1=-2.0;
	float inp2=-2.0;
	float inp3=4.0;
	float inp4=4.0;
	float par[4];
	int xinhao=1;
	    int Tx;
        int Ty;
        int Bx;
        int By;	
	int Mx;
	int My;
	int p=1;
        int size,rank;
		int color[400][400];
	int buf[400];
	int i,j;
	int number,nslave,cow;
	MPI_Status status;
	Display* display=NULL;
	int screen_info;     //screen's information
	int screen_width;   //screen's width
        int screen_height;  //screen's height
		Window paint_win;   //paint window
        int paint_win_width=400; //paint window's width
	int paint_win_height=400; //paint window's height
	int paint_win_x; //paint window's x 
	int paint_win_y; //paint window's y
	int paint_win_size=1;
	char* paint_win_name="tsingsong\'s windows";  //the windows name 
	char* icon_name="Sky";
	XSizeHints paint_win_hints;
    XWMHints wm_hints;
	XClassHint class_hints;
	Pixmap icon_pixmap;
	int icon_wwidth=icon_width;// icon's width
	int icon_wheight=icon_height;//icon's height
	XTextProperty window_name;
	XTextProperty iconname;
	XEvent report;
	GC gc;
	XColor pcolor;
	XGCValues values;
	Colormap map;
	int Draw_x;
	int Draw_y;
	float Drawc_x;
	float Drawc_y;
	const int num=250;           
	int count;
    float DrawPoint_x;
	float DrawPoint_y;
	float squre_r;
	float temp;
	int r[255];
	int g[255];
	int b[255];
	int index;

	srand((unsigned)time(NULL));
	for(i=0;i<256;i++)
	{r[i]=(i*i*1000)%65535;
        g[i]=(i*i*i*5000)%65535;
	b[i]=(i*i*i*i*8000)&65535;}
	MPI_Init(&argc,&argv);
	t1=MPI_Wtime();
	MPI_Comm_rank(MPI_COMM_WORLD,&rank);  //μ?μ???3ìμ???3ìo?
	if(rank==0)  //master
	{	for(i=0;i++;i<400)
			for(j=0;j++;j<400)
				color[i][j]=0;
		display=XOpenDisplay("");//connect server to Xlib
          if(display==NULL) 
		{   printf("the display cann't open!\n");
		    exit(-1);		}

	    screen_info=DefaultScreen(display);//get screen's information
	    screen_width=DisplayWidth(display,screen_info);//get screen's width
	    screen_height=DisplayHeight(display,screen_info);//get screen's height
             paint_win_x=(screen_width-paint_win_width)/2;
            paint_win_y=(screen_height-paint_win_height)/2;
		  paint_win=XCreateSimpleWindow(display,RootWindow(display,screen_info)                      ,paint_win_x,paint_win_y,paint_win_width,paint_win_height
			                         ,4,65535,65535);
icon_pixmap=XCreateBitmapFromData(display,paint_win,icon_bits,icon_wwidth,icon_wheight);	
	    if(XStringListToTextProperty(&icon_name,1,&iconname)==0)
		  printf("the change is failed!\n");
	    if(XStringListToTextProperty(&paint_win_name,1,&window_name)==0)
		  printf("the change is failed!\n");
		  paint_win_hints.flags=PPosition | PSize | PMinSize;
	     paint_win_hints.min_width=300;
	     paint_win_hints.min_height=300;
	     wm_hints.initial_state=NormalState;
	     wm_hints.input=True;
	     wm_hints.icon_pixmap=icon_pixmap;
	     wm_hints.flags=StateHint | IconPixmapHint | InputHint;
		     class_hints.res_name=argv[0];
	     class_hints.res_class="Basic win";
	XSetWMProperties(display,paint_win,&window_name,&iconname,argv,argc,&paint_win_hints,&wm_hints,&class_hints);
	    XSelectInput(display,paint_win,ExposureMask | KeyPressMask | ButtonPressMask | StructureNotifyMask | ButtonReleaseMask |ButtonMotionMask);
           XMapWindow(display,paint_win);//show the paint window
            par[0]=inp1;
            par[1]=inp2;
            par[2]=inp3;
            par[3]=inp4;
            MPI_Comm_size(MPI_COMM_WORLD,&size); //μ?μ???3ìμ???êy
             nslave=size-1; //μ?μ?′ó??3ìμ???êy
	  		 for(number=0;number<nslave;number++)
		 {	 MPI_Send(par,4,MPI_FLOAT,number+1,number,MPI_COMM_WORLD);
			 MPI_Send(&number,1,MPI_INT,number+1,number,MPI_COMM_WORLD);//?íDDo?
		 }
		 for(i=0;i<400;i++)
		 {		 MPI_Recv(buf,400,MPI_INT,MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&status);			 cow=status.MPI_TAG;
                         for(j=0;j<400;j++)
			 {	 color[cow][j]=buf[j]; 	 }		
	                if(number<400)
			 {			 MPI_Send(&number,1,MPI_INT,status.MPI_SOURCE,number,MPI_COMM_WORLD);//?íDDo?
				 number++;	 }
			 else	 {				 MPI_Send(&number,1,MPI_INT,status.MPI_SOURCE,number,MPI_COMM_WORLD);//?íDDo?
			 }		 }
    	    while(1)
		{  	XNextEvent(display,&report);
		    switch(report.type)
			{case Expose:
				map=DefaultColormap(display,DefaultScreen(display));
				pcolor.flags=DoRed|DoGreen|DoBlue;
				gc=XCreateGC(display,paint_win,0,&values);
				for(Draw_x=0;Draw_x<400;Draw_x++)
					for(Draw_y=0;Draw_y<400;Draw_y++)
					{if(color[Draw_x][Draw_y]==num)
						{			pcolor.red=0;
			                        	pcolor.green=0;
			                        	pcolor.blue=0;
						}
		else       {	pcolor.red=r[index*2];         							 pcolor.green=g[index*3];
							pcolor.blue=b[index*4];      }
				if(color[Draw_x][Draw_y]==num)
					color[Draw_x][Draw_y]=0;
				XSetForeground(display,gc,color[Draw_x][Draw_y]*234);
				XDrawPoint(display,paint_win,gc,Draw_x,Draw_y);
					}			
			        t2=MPI_Wtime();
			        printf("%f\n",t2-t1);	
				break;
			case ButtonPress:
			       Bx=report.xbutton.x;
			       By=report.xbutton.y;
			       break;
			case ButtonRelease:
			       Tx=report.xbutton.x;
			       Ty=report.xbutton.y;
			       inp1=Bx*inp3/400+inp1;
			       inp2=(400-Ty)*inp4/400+inp2;
			       inp3=(Tx-Bx)*inp3/400;
			       inp4=(Ty-By)*inp4/400;
			       par[0]=inp1;
			       par[1]=inp2;
			       par[2]=inp3;
			       par[3]=inp4;
                   XDrawRectangle(display,paint_win,gc,Bx,By,Tx-Bx,Ty-By); 
			       for(number=0;number<nslave;number++)
			       {				       MPI_Send(par,4,MPI_FLOAT,number+1,number,MPI_COMM_WORLD);
MPI_Send(&number,1,MPI_INT,number+1,number,MPI_COMM_WORLD);//?íDDo?
			       }
			       for(i=0;i<400;i++)
			       {				       MPI_Recv(buf,400,MPI_INT,MPI_ANY_SOURCE,MPI_ANY_TAG,MPI_COMM_WORLD,&status);		                       cow=status.MPI_TAG;
				       for(j=0;j<400;j++)
				       {  color[cow][j]=buf[j];       }																   if(number<400)								
				       {				       MPI_Send(&number,1,MPI_INT,status.MPI_SOURCE,number,MPI_COMM_WORLD);//?í		
					       number++;	   }										
				       else												
				       {					       MPI_Send(&number,1,MPI_INT,status.MPI_SOURCE,number,MPI_COMM_WORLD);//?íDDo?
				       }	       }
 map=DefaultColormap(display,DefaultScreen(display));
		               pcolor.flags=DoRed|DoGreen|DoBlue;
		     	       gc=XCreateGC(display,paint_win,0,&values);
				for(Draw_x=0;Draw_x<400;Draw_x++)
			         for(Draw_y=0;Draw_y<400;Draw_y++)
			       { if(color[Draw_x][Draw_y]==num)
			        {    pcolor.red=0;
			       pcolor.green=0;
			   pcolor.blue=0;
			        }
			     else   {
			   index=color[Draw_x][Draw_y]%256;
			   pcolor.red=r[index*2];            
		pcolor.green=g[index*3];
	                 pcolor.blue=b[index*4];
			        }	
			     if(color[Draw_x][Draw_y]==num)
				     color[Draw_x][Draw_y]=0;
		XSetForeground(display,gc,color[Draw_x][Draw_y]*234);
		  	     XDrawPoint(display,paint_win,gc,Draw_x,Draw_y); }	       								 break;
				defualt:
				break;
			}	}   }
	else	{
	  while(xinhao==1)
            { p=1;
		 MPI_Recv(par,4,MPI_FLOAT,0,MPI_ANY_TAG,MPI_COMM_WORLD,&status);
		 inp1=par[0];
		 inp2=par[1];
	         inp3=par[2];		
		 inp4=par[3];
	     while(p==1)
		{for(i=0;i<400;i++) buf[i]=0;
			MPI_Recv(&number,1,MPI_INT,0,MPI_ANY_TAG,MPI_COMM_WORLD,&status);
		        if(number<400)
			{Drawc_x=inp3*number/400+inp1;
				for(Draw_y=0;Draw_y<400;Draw_y++)
				{     count=0;
				      Drawc_y=inp4*(400-Draw_y)/400+inp2;
	                              DrawPoint_x=0.0;
                                      DrawPoint_y=0.0;
squre_r=DrawPoint_x*DrawPoint_x+DrawPoint_y*DrawPoint_y;
                                      while(count<num && squre_r<4.0)
				      {    temp=DrawPoint_x;
   DrawPoint_x=DrawPoint_x*DrawPoint_x-DrawPoint_y*DrawPoint_y+Drawc_x;
					    DrawPoint_y=2*temp*DrawPoint_y+Drawc_y;        
					    squre_r=DrawPoint_x*DrawPoint_x+DrawPoint_y*DrawPoint_y;
				            count++;
					}
		                        buf[Draw_y]=count;	}
		        MPI_Send(buf,400,MPI_INT,0,number,MPI_COMM_WORLD);			}
		    else
			{		p=0;
			}	}   }
	}	MPI_Finalize();   }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
av在线播放一区二区三区| 美日韩黄色大片| 色偷偷久久一区二区三区| 国产精品伦理一区二区| 91在线视频播放地址| 樱花草国产18久久久久| 欧美影视一区二区三区| 奇米色777欧美一区二区| 欧美成人精品高清在线播放| 麻豆成人久久精品二区三区小说| 久久天堂av综合合色蜜桃网 | 亚洲综合视频在线观看| 欧美三级在线看| 毛片av一区二区| 国产精品色哟哟网站| 在线观看日韩高清av| 奇米精品一区二区三区在线观看一 | 欧美精品一区二区三区蜜臀| 国产成人精品亚洲午夜麻豆| 亚洲欧美自拍偷拍色图| 9191成人精品久久| 国产在线乱码一区二区三区| 综合激情网...| 欧美一区二区三区四区久久| 成人亚洲一区二区一| 亚洲韩国精品一区| 欧美mv日韩mv国产| 91免费视频观看| 蜜臀久久久久久久| 国产精品理论在线观看| 欧美丰满少妇xxxbbb| 成人天堂资源www在线| 亚洲自拍偷拍欧美| 欧美激情中文字幕| 欧美一区二区性放荡片| 成人午夜看片网址| 免费欧美高清视频| 亚洲手机成人高清视频| 精品久久一区二区| 欧美亚洲综合一区| 成人av网站在线观看| 五月天一区二区| 国产精品初高中害羞小美女文| 日韩一区二区麻豆国产| 99精品欧美一区二区三区小说| 免费av网站大全久久| 亚洲免费在线观看| 久久亚洲影视婷婷| 欧美日韩高清在线| a4yy欧美一区二区三区| 国内不卡的二区三区中文字幕| 亚洲一卡二卡三卡四卡无卡久久| 久久久久国产精品免费免费搜索| 6080午夜不卡| 欧美系列在线观看| 99久久精品免费| 国产91色综合久久免费分享| 蜜桃传媒麻豆第一区在线观看| 一区二区久久久| 中文字幕一区av| 欧美国产精品一区二区三区| 精品粉嫩超白一线天av| 日韩欧美中文一区二区| 欧美日韩精品一区二区三区蜜桃 | 国产福利精品一区二区| 奇米精品一区二区三区在线观看| 亚洲成人1区2区| 一区二区欧美精品| 亚洲三级在线播放| 中文字幕中文字幕中文字幕亚洲无线| 精品久久国产97色综合| 日韩欧美一级精品久久| 欧美精品在欧美一区二区少妇| 欧美性生活久久| 欧美性xxxxxxxx| 欧美日韩国产影片| 欧美精品一级二级三级| 欧美日韩情趣电影| 欧美色精品在线视频| 欧美日韩1区2区| 欧美高清视频在线高清观看mv色露露十八 | 欧美片网站yy| 91麻豆精品国产| 91麻豆精品国产| 2019国产精品| 国产精品免费aⅴ片在线观看| 国产精品区一区二区三区| 国产精品区一区二区三| 亚洲精选一二三| 亚洲国产你懂的| 日韩精品福利网| 寂寞少妇一区二区三区| 国产成人精品一区二区三区四区 | 国产精品萝li| 亚洲乱码一区二区三区在线观看| 亚洲精品中文字幕乱码三区| 亚洲五码中文字幕| 日韩av在线发布| 国产在线一区二区综合免费视频| 成人精品国产福利| 91黄视频在线| 精品国产乱码久久久久久老虎 | 一区二区不卡在线视频 午夜欧美不卡在| 亚洲欧美色综合| 免费观看日韩电影| 国产精品主播直播| 91蜜桃视频在线| 欧美一区二区精品| 国产欧美日韩三区| 亚洲综合偷拍欧美一区色| 麻豆精品蜜桃视频网站| 成人av综合在线| 欧美人狂配大交3d怪物一区| 久久一区二区视频| 亚洲图片激情小说| 人禽交欧美网站| av高清久久久| 日韩三级电影网址| 亚洲三级免费电影| 免费久久精品视频| www.亚洲人| 欧美一级国产精品| 亚洲日本在线观看| 麻豆一区二区在线| 欧美综合亚洲图片综合区| 精品日韩在线观看| 亚洲色图一区二区| 久久国产生活片100| 色天使久久综合网天天| 精品国产麻豆免费人成网站| 亚洲自拍都市欧美小说| 国产一区二区三区观看| 欧美亚洲国产一区在线观看网站| 精品电影一区二区| 亚洲国产一区二区视频| 成人免费视频caoporn| 欧美一区二区在线免费观看| 亚洲最新视频在线播放| 成人免费av在线| 精品久久国产97色综合| 婷婷国产在线综合| 91麻豆精东视频| 国产欧美va欧美不卡在线| 美女视频网站黄色亚洲| 欧美在线小视频| 日韩一区在线免费观看| 国产精品一品二品| 日韩欧美二区三区| 天天操天天干天天综合网| 色综合久久综合网欧美综合网| 国产视频一区在线观看| 国产一区三区三区| 日韩三级电影网址| 日韩二区三区四区| 欧美日韩aaaaaa| 婷婷成人激情在线网| 色综合久久天天| 成人免费在线视频| voyeur盗摄精品| 中文字幕一区二区三区乱码在线 | 亚洲一区二区美女| 色综合中文字幕| 亚洲视频免费在线观看| 色婷婷精品久久二区二区蜜臀av| 亚洲国产经典视频| 成人精品国产福利| 亚洲欧洲在线观看av| 99久久伊人网影院| 亚洲欧洲国产日韩| 99久久精品99国产精品 | 色噜噜狠狠一区二区三区果冻| 国产精品色哟哟网站| eeuss鲁片一区二区三区 | 亚洲自拍另类综合| 欧美日韩一区久久| 青青青爽久久午夜综合久久午夜| 69堂国产成人免费视频| 另类的小说在线视频另类成人小视频在线 | 国产精品麻豆视频| 91麻豆swag| 亚洲一区免费视频| 欧美片网站yy| 激情小说亚洲一区| 久久精品欧美一区二区三区麻豆| 国产成人av电影| 国产精品国产三级国产普通话99| 成人小视频免费在线观看| 国产精品国产三级国产专播品爱网 | 色婷婷狠狠综合| 亚洲一区二区三区免费视频| 欧美另类久久久品| 九九国产精品视频| 国产精品色眯眯| 在线视频中文字幕一区二区| 日韩精品91亚洲二区在线观看| 欧美精品一区二区三区久久久 | 亚洲一区二区三区影院| 91麻豆精品国产无毒不卡在线观看 | 欧美mv日韩mv亚洲| 99国产精品久久久|