From: <ss...@pu...> - 2018-06-08 05:20:08
|
Hello, all. I want to compare the computation time between FE and RB methods, so I looked at "libMesh Performance." Here, I used the "Avg Time with Sub" of "truth_solve()" as the FE solve time in the RB offline stage. And as the RB solve time, I used the "Avg Time with Sub" of "rb_solve()" in the RB online stage. But I don't know if these are right ways to compare computation times. Please tell me which values are generally used to compare computation times between FE and RB methods. For reference, results of "libMesh Performance" in my codes are as follows. (Offline stage) libMesh Performance: Alive time=1702.12, Active time=1692.06 ---------------------------------------------------------------------------- ----------------------------------- | Event nCalls Total Time Avg Time Total Time Avg Time % of Active Time | | w/o Sub w/o Sub With Sub With Sub w/o S With S | ---------------------------------------------------------------------------- ----------------------------------- . | (skip) | . | | RBConstruction | | add_scaled_matrix_and_vector() 63 16.6728 0.264648 37.1072 0.589003 0.99 2.19 | | clear() 1 0.0356 0.035607 0.0356 0.035607 0.00 0.00 | | compute_Fq_representor_innerprods() 1 0.0161 0.016134 2.9970 2.997019 0.00 0.18 | | compute_max_error_bound() 17 0.0722 0.004249 201.1186 11.830503 0.00 11.89 | | enrich_RB_space() 16 0.6050 0.037811 0.6050 0.037811 0.04 0.04 | | train_reduced_basis() 1 0.0032 0.003184 1661.9738 1661.973753 0.00 98.22 | | truth_assembly() 16 40.6187 2.538670 40.6187 2.538670 2.40 2.40 | | truth_solve() 16 0.0534 0.003335 92.7523 5.797018 0.00 5.48 | | update_RB_system_matrices() 16 41.3210 2.582562 41.3210 2.582562 2.44 2.44 | | update_residual_terms() 16 1222.1235 76.382721 1323.1667 82.697919 72.23 78.20 | . | (skip) | . | ---------------------------------------------------------------------------- ----------------------------------- (Online stage) libMesh Performance: Alive time=3.62904, Active time=2.99889 ---------------------------------------------------------------------------- ----------------------------------- | Event nCalls Total Time Avg Time Total Time Avg Time % of Active Time | | w/o Sub w/o Sub With Sub With Sub w/o S With S | ---------------------------------------------------------------------------- ----------------------------------- . | (skip) | . | | RBEvaluation | | clear() 1 0.0002 0.000194 0.0002 0.000194 0.01 0.01 | | compute_residual_dual_norm() 1 0.1543 0.154302 0.1543 0.154302 5.15 5.15 | | legacy_read_offline_data_from_files() 1 0.0218 0.021824 0.0247 0.024672 0.73 0.82 | | rb_solve() 1 0.0002 0.000175 0.1545 0.154478 0.01 5.15 | | read_in_basis_functions() 1 0.0000 0.000005 0.3755 0.375475 0.00 12.52 | | read_in_vectors_from_multiple_files() 1 0.0706 0.070551 0.3755 0.375469 2.35 12.52 | | resize_data_structures() 1 0.0028 0.002847 0.0028 0.002847 0.09 0.09 | . | (skip) | . | ---------------------------------------------------------------------------- ----------------------------------- I look forward to your reply. Thank you. Regards, SKang |
From: David K. <dav...@ak...> - 2018-06-08 11:57:30
|
Hello, Yes, you can use the "libMesh Performance" output to see how long each type of solve took. To get an RB solve time I would normally do an "online stage" solve and look at the timing info for "rb_solve". To get an FE solve time, you can look at the average time of a truth_solve, that should be fine. Note that the speedup you observe generally depends a lot on the details of the problem, and is generally larger for problems with large FE meshes (especially in 3D). Best, David On Fri, Jun 8, 2018 at 1:18 AM, <ss...@pu...> wrote: > Hello, all. > > > > I want to compare the computation time between FE and RB methods, so I > looked at "libMesh Performance." > > Here, I used the "Avg Time with Sub" of "truth_solve()" as the FE solve > time > in the RB offline stage. > > And as the RB solve time, I used the "Avg Time with Sub" of "rb_solve()" in > the RB online stage. > > But I don't know if these are right ways to compare computation times. > > > > Please tell me which values are generally used to compare computation times > between FE and RB methods. > > > > For reference, results of "libMesh Performance" in my codes are as follows. > > (Offline stage) > > > > libMesh Performance: Alive time=1702.12, Active time=1692.06 > > ------------------------------------------------------------ > ---------------- > ----------------------------------- > > | Event nCalls > Total Time Avg Time Total Time Avg Time > % of Active Time | > > | > w/o Sub w/o Sub With Sub With Sub w/o S > With S | > > ------------------------------------------------------------ > ---------------- > ----------------------------------- > > . > | > > (skip) > | > > . > | > > | RBConstruction > | > > | add_scaled_matrix_and_vector() 63 16.6728 > 0.264648 37.1072 0.589003 0.99 2.19 > | > > | clear() 1 > 0.0356 0.035607 0.0356 0.035607 > 0.00 0.00 | > > | compute_Fq_representor_innerprods() 1 0.0161 > 0.016134 2.9970 2.997019 0.00 0.18 > | > > | compute_max_error_bound() 17 0.0722 > 0.004249 201.1186 11.830503 0.00 11.89 > | > > | enrich_RB_space() 16 0.6050 > 0.037811 0.6050 0.037811 0.04 0.04 > | > > | train_reduced_basis() 1 0.0032 > 0.003184 1661.9738 1661.973753 0.00 98.22 > | > > | truth_assembly() 16 > 40.6187 2.538670 40.6187 2.538670 > 2.40 2.40 | > > | truth_solve() 16 > 0.0534 0.003335 92.7523 5.797018 > 0.00 5.48 | > > | update_RB_system_matrices() 16 41.3210 > 2.582562 41.3210 2.582562 2.44 2.44 > | > > | update_residual_terms() 16 1222.1235 > 76.382721 1323.1667 82.697919 72.23 78.20 > | > > . > | > > (skip) > | > > . > | > > ------------------------------------------------------------ > ---------------- > ----------------------------------- > > (Online stage) > > > > libMesh Performance: Alive time=3.62904, Active time=2.99889 > > ------------------------------------------------------------ > ---------------- > ----------------------------------- > > | Event nCalls > Total Time Avg Time Total Time Avg Time > % of Active Time | > > | > w/o Sub w/o Sub With Sub With Sub w/o S > With S | > > ------------------------------------------------------------ > ---------------- > ----------------------------------- > > . > | > > (skip) > | > > . > | > > | RBEvaluation > | > > | clear() 1 > 0.0002 0.000194 0.0002 0.000194 > 0.01 0.01 | > > | compute_residual_dual_norm() 1 0.1543 > 0.154302 0.1543 0.154302 5.15 5.15 > | > > | legacy_read_offline_data_from_files() 1 0.0218 > 0.021824 0.0247 0.024672 0.73 0.82 > | > > | rb_solve() 1 > 0.0002 0.000175 0.1545 0.154478 > 0.01 5.15 | > > | read_in_basis_functions() 1 0.0000 > 0.000005 0.3755 0.375475 0.00 12.52 > | > > | read_in_vectors_from_multiple_files() 1 0.0706 > 0.070551 0.3755 0.375469 2.35 12.52 > | > > | resize_data_structures() 1 0.0028 > 0.002847 0.0028 0.002847 0.09 0.09 > | > > . > | > > (skip) > | > > . > | > > ------------------------------------------------------------ > ---------------- > ----------------------------------- > > > > I look forward to your reply. > > > > Thank you. > > > > Regards, > > SKang > > > > ------------------------------------------------------------ > ------------------ > Check out the vibrant tech community on one of the world's most > engaging tech sites, Slashdot.org! http://sdm.link/slashdot > _______________________________________________ > Libmesh-users mailing list > Lib...@li... > https://lists.sourceforge.net/lists/listinfo/libmesh-users > |