Difference between revisions of "GSOC2021SEM"

From Nsnam
Jump to: navigation, search
(Weekly Reports)
(Project Overview)
Line 18: Line 18:
 
** <u>Add additional examples to SEM</u>: As SEM does not provide a large variety of examples, it would be beneficial to add new examples for easier understanding of SEM APIs for new users. Upon further discussion with the mentors, I will be adding additional examples.  
 
** <u>Add additional examples to SEM</u>: As SEM does not provide a large variety of examples, it would be beneficial to add new examples for easier understanding of SEM APIs for new users. Upon further discussion with the mentors, I will be adding additional examples.  
 
* '''Repository:''' [https://github.com/akshitpatel01/sem RepoLink]
 
* '''Repository:''' [https://github.com/akshitpatel01/sem RepoLink]
 +
* '''Project Proposal:''' [https://docs.google.com/document/d/1kkAAdj9Jo5xP79eDzEnu5zl5y88DmXNGzlZCRlsVWwM/edit?usp=sharing ProjectProposal]
 +
* '''Design Document:''' [https://docs.google.com/document/d/1GWQFEF1my4VmCnKayGZGYj6lwtYFQeE5qFI5emJlbOw/edit?usp=sharing DesignDocument]
 
* '''About Me:''' I am a final year undergraduate student pursuing Computer Science and Engineering at the National Institute of Technology Karnataka (NITK), India. I am interested in computer networks and operating systems. I have about 2.5 years of experience in C, C++, Python, and GO.
 
* '''About Me:''' I am a final year undergraduate student pursuing Computer Science and Engineering at the National Institute of Technology Karnataka (NITK), India. I am interested in computer networks and operating systems. I have about 2.5 years of experience in C, C++, Python, and GO.
 
  
 
= Milestones and Deliverables =
 
= Milestones and Deliverables =

Revision as of 10:20, 12 June 2021

Main Page - Current Development - Developer FAQ - Tools - Related Projects - Project Ideas - Summer Projects

Installation - Troubleshooting - User FAQ - HOWTOs - Samples - Models - Education - Contributed Code - Papers

Back to GSoC 2021 projects

Project Overview

  • Project Name: Add logging support to Simulation Execution Manager (SEM)
  • Student: Akshit Patel
  • Mentors: Davide Magrin, Mattia Lecci
  • Project Goals: The project's original aim is to add support for ns-3’s built-in logging to SEM and provide users with an interactive dashboard to visualize large ns-3 generated logs. The users will be able to enable specific log components at a specified log level for their ns-3 scripts ran with SEM. The dashboard will consist of an interactive table and a graph with different filter options to easily visualize the logs generated either directly from SEM or by manually passing a log file that is generated from ns-3 simulations. The following features will be added to SEM at the end of this project:
    • Enable logging through simulations using SEM.
    • Enable logging through simulations using SEM command-line interface.
    • Visualize log files (generated by SEM or ns-3 directly) efficiently using a dashboard.
    • Add tests (using pytest) to validate the newly added logging functions/APIs.
  • Future Work: I will be implementing the following tasks during the Gsoc period(in addition to the goals above) if time permits or will be taken care of after the project is over. These are the originally planned additional tasks:
    • Add support for time filtering of logs in ns-3: Ns-3 does not support time filtering of logs as of now. This feature will be useful for the users as the log files generated by ns-3 can be huge and this might directly affect the responsiveness of the SEM dashboard that is to be built.
    • Add additional examples to SEM: As SEM does not provide a large variety of examples, it would be beneficial to add new examples for easier understanding of SEM APIs for new users. Upon further discussion with the mentors, I will be adding additional examples.
  • Repository: RepoLink
  • Project Proposal: ProjectProposal
  • Design Document: DesignDocument
  • About Me: I am a final year undergraduate student pursuing Computer Science and Engineering at the National Institute of Technology Karnataka (NITK), India. I am interested in computer networks and operating systems. I have about 2.5 years of experience in C, C++, Python, and GO.

Milestones and Deliverables

The following are the originally planned Milestones and Deliverables at end of each phase(60 hours):

Phase 1

  • Adding the API to enable logging and store the results in a temporary file
  • Adding the function to parse the logs and store the logs in a JSON file.
  • Create a tinyDB database to store the logs for visualization

Phase 2

  • Creating filter buttons for the dashboard.
  • Creating an interactive table as well as a graph for the dashboard.
  • Creating the flask backend

Phase 3

  • Adding the logging support to SEM command-line interface
  • Adding examples for newly added logging system
  • Adding documentation and tests for the newly added logging system.
  • Any pending tasks from the previous deliverables

Weekly Reports

Community Bonding Period

  • Prepared a wiki page for the project
  • Carried out experiments to check the performance of TinyDB (SEM internally uses this)and Dataframe in terms of inserting and querying a large number of logs. Based on these experiments, it was established that TinyDB can insert around 1 million logs(in JSON format) in around 4.5 seconds and thus TinyDB could be a decent choice for this use case.
  • Communicated with the mentors regarding the proposal and refactored the milestones.
  • Started working on a design document to formalize the approach to be followed during the coding phase.