190 likes | 329 Views
Felipe L. Severino flseverino@inf.ufrgs.br. XtremWeb Simulation with SimGrid. Alan Malta Rodrigues alan.malta@inf.ufrgs.br. Summary. SimGrid XtremWeb SimGrid on XtremWeb XtremWeb on SimGrid Current Work. SimGrid. Toolkit for development of Distributed Environments. SimGrid.
E N D
Felipe L. Severino flseverino@inf.ufrgs.br XtremWeb Simulation with SimGrid Alan Malta Rodrigues alan.malta@inf.ufrgs.br
Summary SimGrid XtremWeb SimGrid on XtremWeb XtremWeb on SimGrid Current Work
SimGrid Toolkit for development of Distributed Environments.
SimGrid Requirements for simulation on MSG API: Platform XML file Power, bandwidth and latency; Routing table. Deployment XML file Process roles (function); Number of tasks, CPU and Network requirement. C code linking with the msg and xbt SimGrid libraries.
XtremWeb Open source grid platform for distributed computing; Focus in volunteer computing and Desktop Grid; Many entries for a single task (e.g., distinct xml files); Bag-of-tasks; Related work: BOINC.
XtremWeb Worker Computational resource; Client User: sends applications and jobs (tasks) to be computed; Server Manages clients, workers, applications and jobs; Pull and Steal model Pull: worker requires a job; Steal: cycle-stealing (computation interruptions).
XtremWeb All communication started by the worker Get and Put primitives; One-sided communication (used in MPP). In distributed systems, one-sided communications use RPC or RMI (XW).
XtremWeb - commands XW commands: --xwapps: list of registered applications; --xwaddapps: add a new application (app name, arch, SO, bin file); --xwsubmit: submit a new job; --xwenv: environment file; --xwlabel: name of the job; --xwtasks: list of jobs; --xwresult: get results (output).
SimGrid on XtremWeb XW Modeling; Code compiled with static linking; Binary file ≈10 MB Platform and deployment in a zip file Platform with 100k nodes ≈44 MB; Only worker-server communication;
SimGrid on XtremWeb • xtremweb.client --xwapps • xtremweb.client --xwaddapp xwmodel ix86 Linux XWModel • xtremweb.client --xwsubmit xwmodel --xwenv plat_deploy.zip / --xwlabel xwmodelJob0 plat.xml deploy.xml • xtremweb.client --xwtasks • xtremweb.client --xwresult
XtremWeb on SimGrid Scenario: Desktop Grid (volunteer computing) Simulation variables: All combinations of tests; Thirty times for each test;
XtremWeb on SimGrid Randomly generation platforms, following the arguments: Power (generated with the same probability):* Minimum: 35Mflops (P3 600MHz) Maximum: 181Mflops (Pentium M 1.83GHz) Bandwidth: Minimum: 250/128Kbps Maximum: 14/1Mbps Latency: Minimum: 5ms Maximum: 2000ms Server: 300Mflops, 50/10Mbps, 100ms. * Based on http://www.roylongbottom.org.uk/linpack%20results.htm#anchorStart
XtremWeb on SimGrid Modeling of nodes’ unavailability: When a worker can sleep: before a request task (25%); and/or just after receive a task; How long a worker can sleep: From 60 seconds; Until 86400 seconds (1 day).
XtremWeb on SimGrid (Source code - server) int server(int argc, char *argv[]) { server_host = MSG_host_self(); /* return location on which the current process is executed */ num_workers = argc – 4; xbt_assert1(sscanf(argv[1],"%d", &tasks_count), "Invalid parameter %s\n",argv[1]); xbt_assert1(sscanf(argv[2],"%lg", &task_cpu_size), "Invalid parameter %s\n",argv[2]); xbt_assert1(sscanf(argv[3],"%lg", &task_net_size), "Invalid parameter %s\n",argv[3]); todo = create_tasks(); /* function to allocate and create tasks */ workers = create_hosts(argv); /* function to allocate and create hosts */ scheduler(tasks_count, num_workers, workers); /* scheduling algorithm */ free(workers); free(todo); return 0; } /* end_of_server */
XtremWeb on SimGrid (Source code - scheduler) int scheduler(int tasks_count, int workers_count, m_host_t* workers) { for (i = 0; i < tasks_count; i++) { requester = NULL; requester = receive_request_task(); if(requester == NULL) continue; else a = send_task_to_worker(i, requester); } for (; i < (tasks_count+tasks_losted); i++) { (...) } for(i=0; i<workers_count; i++) { (...) } INFO1("NUMBER OF TASKS LOSTED %d", tasks_losted); return 0; } /* end_of_scheduler */
XtremWeb on SimGrid (Source code - worker) int worker(int argc, char *argv[]) { srand(time(NULL)+pid); /* generation of node’s unavailable */ while(1) { if(rand()%4 == 1) /* 25% can sleep */ { to_sleep = rand()%86401; if(to_sleep >= 60) MSG_process_sleep(to_sleep); } a = request_task_to_server(); switch(a) { case MSG_OK: b = receive_task_from_server(); /* execute_task(task); */ break; } } /* end_of_while */ return 0; } /* end_of_worker */
Current Work Current XW Scheduler: FIFO (v. 1.8) or Round Robin (v. 2.0); Eder S. Fontoura proposes a newScheduler Resource availability profile; Based on resource utilization; Detects availability windows (idle periods); Schedules applications which better fit the available time;
Current Work Simulate G5K with Eder’s scheduler; Simulate G5K with XW’s scheduler; Execute Eder’s scheduler in actual G5K; Execute XW’s scheduler in actual G5K; Analisys: Eder’s scheduler vs XW’s scheduler Simulation vs Real Execution;
Felipe L. Severino flseverino@inf.ufrgs.br XtremWeb Simulation with SimGrid Alan Malta Rodrigues alan.malta@inf.ufrgs.br