Auto Commit
This commit is contained in:
@@ -13,7 +13,7 @@ set(HEADER_FILES
|
|||||||
set(SOURCE_FILES
|
set(SOURCE_FILES
|
||||||
MakePermutationMatrix.cpp
|
MakePermutationMatrix.cpp
|
||||||
ReadFromFile.cpp
|
ReadFromFile.cpp
|
||||||
CostMatrixGenerator.cpp CostMatrixGenerator.h ParseMatrixForMPI.h)
|
CostMatrixGenerator.cpp CostMatrixGenerator.h ParseMatrixForMPI.h SerializeCities.h)
|
||||||
set(CMAKE_CXX_STANDARD 17)
|
set(CMAKE_CXX_STANDARD 17)
|
||||||
|
|
||||||
add_executable(HW10 ${HEADER_FILES} ${SOURCE_FILES} main.cpp)
|
add_executable(HW10 ${HEADER_FILES} ${SOURCE_FILES} main.cpp)
|
||||||
|
|||||||
43
HW10/SerializeCities.h
Normal file
43
HW10/SerializeCities.h
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
//
|
||||||
|
// Created by Brady Bodily on 3/30/20.
|
||||||
|
//
|
||||||
|
|
||||||
|
#include <vector>
|
||||||
|
#include "City.h"
|
||||||
|
|
||||||
|
#ifndef HW10_SERIALIZECITIES_H
|
||||||
|
#define HW10_SERIALIZECITIES_H
|
||||||
|
|
||||||
|
class SerializeCities
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
static std::vector<double> Serialize(std::vector<City> cities);
|
||||||
|
static std::vector<City> Deserialize(std::vector<double> cities);
|
||||||
|
};
|
||||||
|
std::vector<double> SerializeCities::Serialize(std::vector<City> cities)
|
||||||
|
{
|
||||||
|
auto returnVector = std::vector<double>(cities.size()*3, 0);
|
||||||
|
returnVector[0] = cities[0].GetName();
|
||||||
|
returnVector[1] = cities[0].GetX();
|
||||||
|
returnVector[2] = cities[0].GetY();
|
||||||
|
for(int i = 3; i < cities.size()*3; i+=3){
|
||||||
|
returnVector[i] = cities[i].GetName();
|
||||||
|
returnVector[i+1] = cities[i].GetX();
|
||||||
|
returnVector[i+2] = cities[i].GetY();
|
||||||
|
|
||||||
|
}
|
||||||
|
return returnVector;
|
||||||
|
}
|
||||||
|
|
||||||
|
std::vector<City> SerializeCities::Deserialize(std::vector<double> cities)
|
||||||
|
{
|
||||||
|
auto returnVector = std::vector<City>();
|
||||||
|
for(int i = 0; i < cities.size(); i+=3){
|
||||||
|
City city;
|
||||||
|
city.SetCoordinates(cities[i+1], cities[i+2], cities[i]);
|
||||||
|
returnVector.push_back(city);
|
||||||
|
}
|
||||||
|
return returnVector;
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif //HW10_SERIALIZECITIES_H
|
||||||
@@ -1,2 +1,2 @@
|
|||||||
# Hashes of file build rules.
|
# Hashes of file build rules.
|
||||||
ec43966e55ea917fde3b84076c03b167 CMakeFiles/ClangFormat
|
26a2bad7d1d2da4c60ef59c8ea5c8e8f CMakeFiles/ClangFormat
|
||||||
|
|||||||
@@ -54,7 +54,7 @@ CMAKE_BINARY_DIR = /Users/bradybodily/Repositories/CS5500_Parallel_Programming/H
|
|||||||
include CMakeFiles/ClangFormat.dir/progress.make
|
include CMakeFiles/ClangFormat.dir/progress.make
|
||||||
|
|
||||||
CMakeFiles/ClangFormat:
|
CMakeFiles/ClangFormat:
|
||||||
/usr/local/bin/clang-format -i -style=file /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/MakePermutationMatrix.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ReadFromFile.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/City.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/MakePermutationMatrix.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ReadFromFile.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/CostMatrixGenerator.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/CostMatrixGenerator.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ParseMatrixForMPI.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/main.cpp
|
/usr/local/bin/clang-format -i -style=file /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/MakePermutationMatrix.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ReadFromFile.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/City.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/MakePermutationMatrix.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ReadFromFile.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/CostMatrixGenerator.cpp /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/CostMatrixGenerator.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ParseMatrixForMPI.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/SerializeCities.h /Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/main.cpp
|
||||||
|
|
||||||
ClangFormat: CMakeFiles/ClangFormat
|
ClangFormat: CMakeFiles/ClangFormat
|
||||||
ClangFormat: CMakeFiles/ClangFormat.dir/build.make
|
ClangFormat: CMakeFiles/ClangFormat.dir/build.make
|
||||||
|
|||||||
@@ -118,6 +118,9 @@
|
|||||||
<Unit filename="/Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ReadFromFile.h">
|
<Unit filename="/Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/ReadFromFile.h">
|
||||||
<Option target="HW10"/>
|
<Option target="HW10"/>
|
||||||
</Unit>
|
</Unit>
|
||||||
|
<Unit filename="/Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/SerializeCities.h">
|
||||||
|
<Option target="HW10"/>
|
||||||
|
</Unit>
|
||||||
<Unit filename="/Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/main.cpp">
|
<Unit filename="/Users/bradybodily/Repositories/CS5500_Parallel_Programming/HW10/main.cpp">
|
||||||
<Option target="HW10"/>
|
<Option target="HW10"/>
|
||||||
</Unit>
|
</Unit>
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
#include "ParseMatrixForMPI.h"
|
#include "ParseMatrixForMPI.h"
|
||||||
#include "ReadFromFile.h"
|
#include "ReadFromFile.h"
|
||||||
#include "mpi.h"
|
#include "mpi.h"
|
||||||
|
#include "SerializeCities.h"
|
||||||
|
|
||||||
#define MCW MPI_COMM_WORLD
|
#define MCW MPI_COMM_WORLD
|
||||||
int main(int argc, char* argv[])
|
int main(int argc, char* argv[])
|
||||||
@@ -15,6 +16,7 @@ int main(int argc, char* argv[])
|
|||||||
std::vector<std::vector<double>> costMatrix;
|
std::vector<std::vector<double>> costMatrix;
|
||||||
std::vector<City> cities;
|
std::vector<City> cities;
|
||||||
std::vector<double> flatMatrix;
|
std::vector<double> flatMatrix;
|
||||||
|
std::vector<double> serializedCity;
|
||||||
if (rank == 0) {
|
if (rank == 0) {
|
||||||
std::cout << "Reading in file" << std::endl;
|
std::cout << "Reading in file" << std::endl;
|
||||||
cities = ReadFromFile::ReadFile("../input");
|
cities = ReadFromFile::ReadFile("../input");
|
||||||
@@ -28,6 +30,7 @@ int main(int argc, char* argv[])
|
|||||||
// std::cout << std::endl;
|
// std::cout << std::endl;
|
||||||
// }
|
// }
|
||||||
flatMatrix = matrixTools::FlattenMatrix(costMatrix);
|
flatMatrix = matrixTools::FlattenMatrix(costMatrix);
|
||||||
|
SerializeCities::Serialize(cities);
|
||||||
std::cout << "Here: ";
|
std::cout << "Here: ";
|
||||||
for(int i = 0; i < cities.size(); i++){
|
for(int i = 0; i < cities.size(); i++){
|
||||||
std::cout << cities[i].GetName() << " ";
|
std::cout << cities[i].GetName() << " ";
|
||||||
@@ -39,6 +42,7 @@ int main(int argc, char* argv[])
|
|||||||
// reserve memory for vectors
|
// reserve memory for vectors
|
||||||
flatMatrix.resize(citiesSize*citiesSize);
|
flatMatrix.resize(citiesSize*citiesSize);
|
||||||
cities.resize(citiesSize);
|
cities.resize(citiesSize);
|
||||||
|
serializedCity.resize(citiesSize*3);
|
||||||
costMatrix.resize(citiesSize);
|
costMatrix.resize(citiesSize);
|
||||||
for(int i = 0; i < citiesSize; i++) {
|
for(int i = 0; i < citiesSize; i++) {
|
||||||
costMatrix[i].resize(citiesSize);
|
costMatrix[i].resize(citiesSize);
|
||||||
@@ -48,13 +52,22 @@ int main(int argc, char* argv[])
|
|||||||
std::cout << cities[i].GetName() << " ";
|
std::cout << cities[i].GetName() << " ";
|
||||||
}
|
}
|
||||||
std::cout << std::endl;
|
std::cout << std::endl;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
MPI_Bcast(&flatMatrix[0], flatMatrix.size(), MPI_DOUBLE, 0, MPI_COMM_WORLD);
|
MPI_Bcast(&flatMatrix[0], flatMatrix.size(), MPI_DOUBLE, 0, MPI_COMM_WORLD);
|
||||||
MPI_Bcast(&cities[0], citiesSize, MPI_DOUBLE, 0, MPI_COMM_WORLD);
|
MPI_Bcast(&serializedCity[0], citiesSize*3, MPI_DOUBLE, 0, MPI_COMM_WORLD);
|
||||||
|
|
||||||
std::vector<double> costs;
|
std::vector<double> costs;
|
||||||
if(rank){
|
if(rank){
|
||||||
|
cities = SerializeCities::Deserialize(serializedCity);
|
||||||
|
|
||||||
|
std::cout << "After B_cast: ";
|
||||||
|
for(int i = 0; i < cities.size(); i++){
|
||||||
|
std::cout << cities[i].GetName() << " ";
|
||||||
|
}
|
||||||
|
std::cout << std::endl;
|
||||||
|
|
||||||
costMatrix = matrixTools::UnflattenMatrix(flatMatrix, citiesSize, citiesSize);
|
costMatrix = matrixTools::UnflattenMatrix(flatMatrix, citiesSize, citiesSize);
|
||||||
//Make permutations
|
//Make permutations
|
||||||
std::cout << "source size from main " << cities.size() << std::endl;
|
std::cout << "source size from main " << cities.size() << std::endl;
|
||||||
|
|||||||
Reference in New Issue
Block a user