Beispiel #1
0
int main()
{
	warmUp();
	uint64_t start,end;
	static char buffer[FOUR_KB] __attribute__ ((__aligned__ (FOUR_KB)));
	string prefix = "/mnt/nfs/import/";
	string files[] = {"file1", "file2", "file3", "file4", "file5", "file6", "file7", "file8", "file9"};
	double results[lessIter], sum;
	for (int k=0;k<9;k++)
	{
		for(int i=0;i<lessIter;++i)
		{
			sum = 0;
			for (int j=0;j<lessInner;j++)
			{
				int fd = open((prefix + files[k]).c_str(), O_RDONLY | O_DIRECT);
				if (fd <= 0)
				{
					cout << "open failed\n";
				}
				int n;
				getStartTick(start);
				int tot = 0;
				while ( true )
				{
					n=read(fd, &buffer, FOUR_KB);
					if (n<0)
						cout << "Read error\n";
					tot += n;
					if (tot >= READLIMIT)
						break;
				}
				getEndTick(end);
//				cout << "total:" << tot << " k: " << k << "\n";
				close (fd);
				sum += end - start;	
			}
			sum /= lessInner;
			results[i] = sum;
		}
		string fileName = files[k] + "SequentialRemoteCycles.txt";
		string fileTimeName = files[k] + "SequentialRemoteTime.txt";
		writeToFile(results, fileName);
		getTimeFromTicks(results, lessIter);
		writeToFile(results, fileTimeName);
		pair<double, double> meanAndVariance = getMeanAndVariance(results, lessIter);
		cout << "File: " << files[k] << "\n";
		cout << "File read mean= " << (meanAndVariance.first * FOUR_KB / READLIMIT) << "\n";
		cout << "File read variance= " << (meanAndVariance.second * FOUR_KB / READLIMIT) << "\n";
		
		ofstream myfile;
		myfile.open ( (files[k] + "SequentialRemoteResults.txt").c_str());
  		myfile << "File: " << files[k] << "\n";
		myfile << "File read mean= " << (meanAndVariance.first * FOUR_KB / READLIMIT) << "\n";
		myfile << "File read variance= " << (meanAndVariance.second * FOUR_KB / READLIMIT) << "\n";
		myfile.close();
		
	}
	return 0;
}
Beispiel #2
0
int main()
{
	warmUp();
	uint64_t start,end;
	double results[middleIters], sum;
	int sock_fd, status, bytes_read;
	struct addrinfo remote;
	struct sockaddr_in remote_addr;
	struct in_addr raddr;
//	char buffer[ONE_MB];
	string message = "";
	int buff_size = ONE_MB;
	message.append(FIVE_MB, '.');

	remote.ai_family = AF_INET;
	remote.ai_socktype = SOCK_STREAM;

	raddr.s_addr = inet_addr(ADDR_REMOTE);

	remote_addr.sin_family = AF_INET;
	remote_addr.sin_port = htons(PORT);
	remote_addr.sin_addr = raddr;
	
	if ((sock_fd = socket(remote.ai_family, remote.ai_socktype, remote.ai_protocol)) == -1) 
	{
		cout << "Can't open socket\n";
		exit(1);
	}	
	setsockopt(sock_fd, SOL_SOCKET, SO_SNDBUF, &buff_size, (int)sizeof(buff_size));
	if (connect(sock_fd, (struct sockaddr *) &remote_addr, sizeof remote_addr) == -1) 
	{
		cout << "Can't connect\n";
		close(sock_fd);
		exit(1);
	}
	
	for (int i=0;i<middleIters;i++)
	{
		sum = 0;
		for (int j=0;j<1;j++)
		{
			getStartTick(start);
			send(sock_fd, message.c_str(), BYTES, 0);
			getEndTick(end);
        		sum += end - start;
        	}
		sum /= 1;
		results[i] = sum;
        }
	close(sock_fd);
	writeToFile(results,"peakbwRemoteCycles.txt");
	getTimeFromTicks(results);
	writeToFile(results,"peakbwRemoteTime.txt");
	pair<double, double> meanAndVariance = getMeanAndVariance(results, middleIters);
	cout << "Peak BW mean= " << meanAndVariance.first << "\n";
	cout << "Peak BW variance= " << meanAndVariance.second << "\n";
	cout << "Mean bandwidth= " << 1000000 * (208/meanAndVariance.first) << "\n";
	
	ofstream myfile;
	myfile.open ("peakBwRemoteResults.txt");
	myfile << "Peak Bw mean= " << meanAndVariance.first << "\n";
	myfile << "Peak Bw variance= " << meanAndVariance.second << "\n";
	myfile << "Mean bandwidth= " << 1000000 * (208/meanAndVariance.first) << "\n";
	myfile.close();
	
	return 0;
}
Beispiel #3
0
int main(int argc, char ** argv)
{   
    // Checking args
    if(argc > 1) return FAILURE;
    std::cout << "\nRunning program : " << argv[0] << "\n" << std::endl;

    // Starting load of heavy resources
    // Launching thread
    ResourceLoader rLoader(DEBUG);
    rLoader.start();

    // Creating window
    sf::RenderWindow window(sf::VideoMode(WINDOW_WIDTH, WINDOW_HEIGHT),
    WINDOW_NAME, sf::Style::Titlebar);

    // Window framerate - Default : 120 fps
    window.setFramerateLimit(WINDOW_FPS);

    // Starting some videos while loading res
    SplashScreen splash(DEBUG);
    //splash.start(&window);

    // Getting loaded resources
    // Wait if not finished
    while(!rLoader.getLoadState()) sf::sleep(sf::milliseconds(WAIT_TIME));
    ManagerGroup * managerGroup = rLoader.getManager();

    // Creating menu
    LoginMenu loginMenu(DEBUG, managerGroup);

    //Creating lobby
    Lobby lobby(DEBUG, managerGroup);

    //Creating warmUp
    WarmUp warmUp(DEBUG, managerGroup);

    //Creating Game
    Game game(DEBUG, managerGroup);

    // Setting main target
    managerGroup->ptr_targetManager->isOnLoginMenu();

    sf::Clock clock;
    while (window.isOpen())
    {   
        // Exiting program
        if(!managerGroup->ptr_targetManager->isExit()) {
            managerGroup->ptr_musicManager->stopPlaylist();
            window.close();
            continue;
        }

        double elapsedTime = clock.getElapsedTime().asSeconds();
        clock.restart().asMilliseconds();
        window.clear();

        sf::Event event;
        while (window.pollEvent(event))
        {
            if (event.type == sf::Event::Closed)
                window.close();
        }

        // Updating game logic
        loginMenu.update(&window, &event, elapsedTime);
        lobby.update(&window, &event, elapsedTime);
        warmUp.update(&window, &event, elapsedTime);
        game.update(&window, &event, elapsedTime);
        managerGroup->ptr_musicManager->update();

        window.display();
    }

    return SUCCESS;
}
Beispiel #4
0
int main()
{
	warmUp();
	uint64_t start,end;
	double results[iterations], sum;
	int sock_fd, status, bytes_read;
	struct addrinfo remote;
	struct sockaddr_in remote_addr;
	struct in_addr raddr;
	char buffer[BYTES];
	string message = "";

	message.append(BYTES, '.');

	remote.ai_family = AF_INET;
	remote.ai_socktype = SOCK_STREAM;

	raddr.s_addr = inet_addr(ADDR_REMOTE);

	remote_addr.sin_family = AF_INET;
	remote_addr.sin_port = htons(PORT);
	remote_addr.sin_addr = raddr;
	
	for (int i=0;i<iterations;i++)
	{
		sum = 0;
		for (int j=0;j<10;j++)
		{
			if ((sock_fd = socket(remote.ai_family, remote.ai_socktype, remote.ai_protocol)) == -1) 
			{
				cout << "Can't open socket\n";
				exit(1);
			}	

			if (connect(sock_fd, (struct sockaddr *) &remote_addr, sizeof remote_addr) == -1) 
			{
				cout << "Can't connect\n";
				close(sock_fd);
				exit(1);
			}
			getStartTick(start);
			close(sock_fd);
			getEndTick(end);
        		
			sum += end - start;
        	}
		sum /= 10;
		results[i] = sum;
        }
	
	writeToFile(results,"teardownRemoteCycles.txt");
	getTimeFromTicks(results);
	writeToFile(results,"teardownRemoteTime.txt");
	pair<double, double> meanAndVariance = getMeanAndVariance(results, iterations);
	cout << "Teardown mean= " << meanAndVariance.first << "\n";
	cout << "Teardown variance= " << meanAndVariance.second << "\n";
	
	ofstream myfile;
	myfile.open ("tearDownRemoteResults.txt");
	myfile << "Teardown mean= " << meanAndVariance.first << "\n";
	myfile << "Teardown variance= " << meanAndVariance.second << "\n";
	myfile.close();
	return 0;
}
Beispiel #5
0
//Generate 9 files, starting from file1 to ... file9, starting with 32MB, doubling up the size each time
int main()
{
	warmUp();
	uint64_t start,end;
	char buffer[ONE_MB];
	string prefix = "";
	string files[] = {"f1", "f2", "f3", "f4", "f5", "f6", "f7", "f8", "f9", "f10", "f11","f12","f13","f14","f15","f16","f17","f18","f19","f20"};
	double results[iterations], sum;
	long long int fileSize = 32 * ONE_MB;
	for (int k=0;k<20;k++)
	{
		for(int l=0;l<=k;++l)
		{
		    pid = fork();
		    if(pid < 0) 
		    {
			printf("Error");
			exit(1);
		    }
		    else if (pid ==0)
		    {
			for(int i=0;i<iterations;++i)
			{
				sum = 0;
				for (int j=0;j<innerLoop;j++)
				{
					int fd = open((prefix + files[l]).c_str(), O_RDONLY | O_DIRECT);
					if (fd <= 0)
					{
						cout << "open failed\n";
					}
					int n;
					getStartTick(start);
					long long int tot = 0;
					while ( n=read(fd, &buffer, FOUR_KB) > 0)
					{
						if (n<0)
							cout << "Read error\n";
					}
					getEndTick(end);
					close (fd);
			 		sum += end - start;	
				}
				sum /= innerLoop;
				results[i] = sum;
			}
			string fileName = files[l] + std::string(k) +  "Cycles.txt";
			string fileTimeName = files[l] + std::string(k) +"Time.txt";
			writeToFile(results, fileName);
			getTimeFromTicks(results, lessIter);
			writeToFile(results, fileTimeName);
			pair<double, double> meanAndVariance = getMeanAndVariance(results, lessIter);
			cout << "File: " << files[k] << "\n";
			cout << "File read mean= " << meanAndVariance.first << "\n";
			cout << "File read variance= " << meanAndVariance.second << "\n";
			cout << "Average read time=" << (meanAndVariance.first * ONE_MB / fileSize) << "\n";
		
			ofstream myfile;
			fileName = files[k] + "FileCacheResults";
			myfile.open (fileName.c_str());
	  		myfile << "File: " << files[k] << "\n";
			myfile << "File read mean= " << meanAndVariance.first << "\n";
			myfile << "File read variance= " << meanAndVariance.second << "\n";
			myfile << "Average read time=" << (meanAndVariance.first * ONE_MB / fileSize) << "\n";
			myfile.close();
			
			exit(0);
		}
		else
		{
			wait(NULL);
		}
	}
	return 0;
}