{"thread":{"id":"30165","subject":"GSOC proposal: Parallel Git Commands","startedAt":"2012-04-06T15:37:00Z","lastAt":"2012-04-06T15:37:00Z","messageCount":1,"participants":["shi roger"],"isPatch":false,"patchVersion":null,"patchTotal":null},"messages":[{"id":"188659","messageId":"CAL8K7nJskxFwC+iyWiYPoXGWwOY3f2sjX9wjfBx31cgDdOTsHw@mail.gmail.com","threadId":"30165","inReplyTo":null,"subject":"GSOC proposal: Parallel Git Commands","fromName":"shi roger","fromEmail":"rogershijicheng@gmail.com","sentAt":"2012-04-06T15:37:00Z","receivedAt":"2012-04-06T15:37:00Z","isPatch":false,"sender":{"key":"rogershijicheng@gmail.com","avatar":null},"body":"Goals and Steps:\n\nThis project is supposed to improve the parallelization and\nscalability of Git command. Though the current version of Git does\ntake parallel programming into consideration (such as git grep\ncommand), there are a lot of aspects to improve. For instance, git\ngrep --cache and git diff haven’t adopted multi-thread programming\nmodel. Therefore, I supposesome other commands shouldalso be\nparalleled.\n\nThe project can be finished by the following steps:\n\n1.  Week 1 ~ 2: Profile the Git commands in an extremely tough\nenvironment, such as a very big repository or a long time lasting\nproject. This is used to distinguish which command takes much more\ntime to accomplish as the repository grows more complexity.\n\n2.  Week 3 ~ 4: Profile the commands, which are selected from the\nfirst step in more detail to tell what’s the bottleneck and whether it\ncan be fixed in parallel manner. The profile tools can be oprofile,\ndtrace or some other proper tools.\n\n3.  Week 5 ~ 12: Redesign the data structure and data process logic to\nparallel the git commands.\n\n4.  Week 5 ~ 12: Redo the profiling and testing to confirm that these\nchanges really improve the scalability and parallelization of Git\ncommands.\n\n5.  Step 3 and Step 4 may loop several times to fix the errors and new\nperformance bottlenecks introduced by new design.\n\nSuccess criteria:\n\n    After the project, git should scale well as the CPU core number\ngrows or at least have a better performance than the current version.\n\nInterfaces:\n\nThis project doesn’t deal with extending git, but redesigning the\ninternal data structure and process logic to parallel it. For\ninstance, there may be some data structures sharing between the loop\niterations which maybring difficulty to parallel it. So far, I have\nchecked the git grep and git diff commands and the related filesare\nsupposed tobe modified, such as diff.c and grep.c. However, as the\nproject goes on, more problems may be revealed and more files will\nneed to be changed.\n\n\nAbout Me:\n\nJicheng Shi(施继成)\n\n\n\nFirst Year Graduate Student\n\nParallel Processing Institute\nFudan University\nRM 320, Software Building, 825 Zhangheng Road, Shanghai\nP.R. China, 201203\nEmail: jcshi@fudan.edu.cn\n\nEducation\n\nSep. 2011 - Now. Software School, Fudan University\n\nSep. 2007 - July. 2011. Software School, Fudan University\n\nPublication\n\nXiang Song, Jicheng Shi, Haibo Chen and Binyu Zang. Revisiting\nSoftware Zero-Copy forWeb-caching Applications with Twin Allocators.\nProceedings of 2012 Usenix Annual Technical Conference (Usenix ATC\n2012, short paper, to appear). Boston, Massachusetts USA, June, 2012.\n\nJicheng Shi, Xiang Song, Haibo Chen, Binyu Zang. Limiting Cache-based\nSide-Channel in Multi-tenant Cloud using Dynamic Page Coloring. the\n7th Workshop on Hot Topics in System Dependability (HotDep'11)\n\n\n\nResearch Projects\n\nParalleling VM Migration.  Dec.2011 - Now\n\nTCP/UDP Stack Buffer Zero-Copy.  May.2011 - Nov.2011\n\nDefending Side Channel Attack in Cloud.  Nov.2009 - Apr.2011\n\nSkills\n\nLanguages: C(4 years), Java(4 years), C++, Python (2 years), Common\nLisp, Javascript\n\nSystem: Linux(Operation System), Xen(Virtualization System)\n"}]}