<div dir="ltr"><div>Hi Soham,</div><div><br></div><div>I'm the person who has volunteered to do the GSOC mentoring for this project, should a suitable person apply for it. I replied to a previous email on this discussion by a different prospective student (see <a href="https://lists.llvm.org/pipermail/llvm-dev/2021-February/148741.html">https://lists.llvm.org/pipermail/llvm-dev/2021-February/148741.html</a>). You can find my response in the reply to that email. That response contains a number of key points about the project and hopefully answers some of your questions too. There were some comments by other people on this list, with reference to this topic, in another email thread starting here: <a href="https://lists.llvm.org/pipermail/llvm-dev/2021-March/149178.html">https://lists.llvm.org/pipermail/llvm-dev/2021-March/149178.html</a>.</div><div><br></div><div>For a concrete use-case, take my company. My 12 core machine takes somewhere between 20 and 40 minutes to run the entire set of LLVM tests, depending on what else my machine is doing, and what build configuration I am running. As we should run these tests prior to committing our changes to the LLVM main branch, this is a major bottleneck to landing any changes. We have about 100 computers in the office,  and we run an internal distributed build system, which allows users to distribute their compilations across many machines, so that rather than having access to just 12 cores, they have access to 800+ cores potentially, making use of idle resources and allowing for far more compilations to be done and the result to be produced faster. If the lit tests could be passed in some way to these machines (perhaps in batches), the tests would run faster, since you'd have up to 1200 tests running simultaneously, rather than 12. Of course, other companies will have other distribution systems, so any solution should be general purpose, and allow individual companies to easily configure things for their own needs.</div><div><br></div><div>A good proposal will show some evidence of an understanding of how lit runs its tests, how distribution of a large problem like this might be solved, and some evidence of research into existing distribution systems. It would also outline how the student plans to tackle the problem, with a rough breakdown of individual stages and a timeline of how long they estimate each stage to last. Evidence of any LLVM contributions the student has already made by the time the proposals have been reviewed will also go a long way towards helping an application stand out.</div><div><br></div><div>I hope that answers your questions, feel free to ask more!</div><div><br></div><div>James<br></div></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Wed, 24 Mar 2021 at 03:01, soham dixit <<a href="mailto:sohamdixit81@gmail.com">sohamdixit81@gmail.com</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex"><div dir="auto">Hello community/Mentor,<div dir="auto"><br></div><div dir="auto">Myself, Soham Dixit an undergraduate student from India. I was</div><div dir="auto">checking the list of 2021 GSoC projects in LLVM compiler</div><div dir="auto">infrastructure, and I found 'Distributed lit testing project'[1] as an</div><div dir="auto">interesting one.</div><div dir="auto"><br></div><div dir="auto">So far I have built llvm with Clang as a subproject enabled, I have</div><div dir="auto">tried the `make check*` commands and have tried to see how the</div><div dir="auto">llvm-lit based tests run.</div><div dir="auto"><br></div><div dir="auto">AFAIU, there is a bottleneck(mostly time required and the number of</div><div dir="auto">times we run these regression based tests) for running llvm-lit based</div><div dir="auto">tests even on pretty good and powerful architectures which I believe</div><div dir="auto">should be the llvm buildbots(probably).</div><div dir="auto">Looking into how the building llvm compiler issue was solved mentions</div><div dir="auto">that the build process was made distributed which might take advantage</div><div dir="auto">of other nodes in the cluster.</div><div dir="auto">IIUC, the aim of this project is to follow the similar approach that</div><div dir="auto">was followed for solving the build problem and this time we are trying</div><div dir="auto">to parallelize the llvm-lit based tests inside the llvm-lit framework</div><div dir="auto">to get distributed on nodes in the cluster and collect pass and fail</div><div dir="auto">results from each node and consolidate the same and represent to the</div><div dir="auto">developer.</div><div dir="auto"><br></div><div dir="auto">I am writing this email to get more detailed information about this</div><div dir="auto">project and see what is the real use case where this project can be</div><div dir="auto">practically used?</div><div dir="auto"><br></div><div dir="auto">What is it that I should start looking into to make a good and</div><div dir="auto">detailed proposal ?</div><div dir="auto">I have had no experience in compilers but I am interested in getting involved.</div><div dir="auto"><br></div><div dir="auto">Thanks and regards,</div><div dir="auto">Soham</div><div dir="auto"><br></div><div dir="auto">[1]<a href="https://llvm.org/OpenProjects.html#llvm_distributing_lit" target="_blank">https://llvm.org/OpenProjects.html#llvm_distributing_lit</a></div></div>
</blockquote></div>