Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Regarding Release #62

Closed
pradeepp2019 opened this issue Mar 19, 2019 · 11 comments
Closed

Regarding Release #62

pradeepp2019 opened this issue Mar 19, 2019 · 11 comments

Comments

@pradeepp2019
Copy link

This is not an issue. I didn't know where to raise my query. So, raising it here. We are planning to use the Quantum library for one of our products for high scalability and performance requirement. So, can you please let me know if there is any plan for a release which can be used for the product dev?

@pradeepp2019
Copy link
Author

Thanks for releasing it so quickly!

@accelerated
Copy link
Contributor

We were long overdue for a release actually. The code has been stable for a while now. If any API's change, we will bump the major version so you will know if you need to modify your source. Hopefully this will not happen too often.

@pradeepp2019
Copy link
Author

That is good to know that the code is stable. Is there a way to stress test it before we use it in our product? Any suggestions would be appreciated.

@accelerated
Copy link
Contributor

Hi @pradeepp2019, you can take a look into the tests directory, there are a few test which stress the library. For instance: here or using the Sequencer class here but you just need to increase the taskCount to whatever you want. Also note that with the Sequencer class, for increased performance you should set the control queue id to be outside the range of the coroQueueIdRangeForAny. See here and here.

PS: v1.1 has been released so you should use that one for now.

@accelerated
Copy link
Contributor

If you want to stress test the IO thread pool, and also if your application needs high-throughput, consider enabling load balancing option for the IO threads. This will multiple shared queues in non-blocking mode and should perform better under high loads.

@pradeepp2019
Copy link
Author

Thanks for the info! Will try it out... Btw, I encountered boost related errors when I ran the test
errors.txt
"make quantum_tests". Attaching it here. Any idea why the errors come?

@accelerated
Copy link
Contributor

accelerated commented Mar 21, 2019

Check the value of BOOST_ROOT which you specify on the cmake command line. I believe the boost/intrusive_ptr.hpp is not in your path.
You can also follow the steps here: https://github.com/bloomberg/quantum/blob/master/.travis.yml#L31

@pradeepp2019
Copy link
Author

I was able to resolve that issue after upgrading boost to 1.69 version but still seeing below errors. This seems to be with respect to quantum. Have you encountered thes errors?

[root@tdnasrv10191 build]# make quantum_tests
[ 25%] Building CXX object tests/CMakeFiles/quantum_tests.dir/quantum_coro_ranges.cpp.o
cc1plus: error: -Wabi won't warn about anything [-Werror=abi]
cc1plus: note: -Wabi warns about differences from the most up-to-date ABI, which is also used by default
cc1plus: note: use e.g. -Wabi=11 to warn about changes from GCC 7
cc1plus: all warnings being treated as errors
make[3]: *** [tests/CMakeFiles/quantum_tests.dir/quantum_coro_ranges.cpp.o] Error 1
make[2]: *** [tests/CMakeFiles/quantum_tests.dir/all] Error 2
make[1]: *** [tests/CMakeFiles/quantum_tests.dir/rule] Error 2
make: *** [quantum_tests] Error 2

@accelerated
Copy link
Contributor

The minimum boost version required is 1.61 which cmake checks in the beginning via find_package module. If you didn't get an error that means you already had a good boost version but perhaps it was not installed properly?
It's hard for me to know what exact issue you have since I can't see how you invoked cmake or what toolset you're using. This is not really an error, it's a warning which means that you're most likely using a very new compiler e.g. gcc 7 and you're compiling for c++11 which will be ABI incompatible with say gcc 5 compiling for c++11. To fix this you can:

  1. Silence the ABI warning by removing the -Wabi here
  2. If you don't want to change the source CMakeLists.txt you can set the env variable CXXSTANDARD=14 or CXXSTANDARD=17, clear you cmake cache and files and invoke cmake again.
  3. Override the compile flags altoghether with CXXFLAGS environment variable like CXXFLAGS="-Wall -Wextra ... " but remove -Wabi, clear cmake cache and invoke cmake again.

@pradeepp2019
Copy link
Author

Thanks for the steps. It helped me move further. I am now getting the error "undefined reference to `testing::internal::EqFailure" which is related to gtest. I tried googling for this error but I am not able to fix it with the options mentioned. (gtest version 1.9.0). Any clues? Attached the error file.
errors.txt

@accelerated
Copy link
Contributor

Hi, this is exactly why the -Wabi warnings are important! Basically your gtest is compiled with an older, abi-incompatible compiler with the one you currently have. Solution: use an older compiler or build gtest from scrarch which is shown in the .yml file i send you earlier. I would go with the latter approach.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants