Found 5 result(s) for "concurrency"! Click on the links for more details
Using Dijkstra to Route Packages in a Network Overlay
The goal of this project was to use an overlay to communicate between messaging nodes (clients) and the Registry (server) to send messages using threads. It follows the principles of TCP/IP protocols and overlays used in P2P systems. The registry accepts messaging nodes using a server socket and creates receiver and sender threads for that connection. The messaging nodes also have their own sets of threads for the registry and peers. The foreground process in the Registry allows the users to specify commands that creates the undirected graph with all registered nodes, connect to peers to form bidirectional connections, and start sending messages. When all nodes finish messaging each other randomly, the statistics are collected and can be compared to see if any packets were lost during the period.
Analysis of Million Songs Dataset using Hadoop MapReduce
This project was an introduction to using Hadoop MapReduce to analyze a large file (~1.6 GB), namely the Million Song subset containing 10,000 songs. The files were stored using HDFS and cluster size consisted of 10 machines. There are 10 Java files with jobs of their own which are focused on answering the 10 questions below. Please visit the github for more details on the questions, answers, and more.
Fast Multithreaded Matrix Multiplication
This is a very efficient matrix multiplication calculator built using Java and its concurrency libraries. It can be used to multiply matrices populated using a random seed, but it can also be modified to use predefined values. The command line gives you the option to define the size of the matrices, which will be the same for both matrices, the seed used in random to populate the matrices, and the number of threads. The features list below describes the optimizations.
CS314: Software Engineering
Introduced team-based development of large, complex systems that supported Scrum-based development while completing a semester-long web development project to prepare for the industry. Topics included clean code, configuration management, continuous integration, testing, requirements, project management and teamwork. The process tools used include Visual Studio Code, IntelliJ IDEA, Linux, Docker, Git, GitHub, Maven, NPM, Webpack, JUnit, Jest, Postman, Zenhub, and Code Climate. The technology tools used include: Linux, Java, JavaScript, ReactJS, Reactstrap, React Leaflet, SQL, MariaDB, Java Spark, Java Concurrency, SLF4J, uLog, JSON, and KML.
CIS 455: Advanced Database Management
Learned and utilized advanced data management topics including performance tuning, concurrency control, security, object-oriented databases, and data warehousing. Reviewed physical and logical design, implementation, and administration of databases.