Programming parallel for C++ and Python application


 
Thread Tools Search this Thread
Special Forums UNIX and Linux Applications High Performance Computing Programming parallel for C++ and Python application
Prev   Next
# 1  
Old 03-04-2013
Programming parallel for C++ and Python application

I am looking to have a C++ and Python application developed using the processing power of at least one GPU.
We are already using Boost, so Boost.MPI comes to mind.
We already have some experience in developing C++ applications for multi-core CPUs by using threading.
However, since we have not developed sufficient expertise in MPI, we were wondering if a Python solution would be more appropriate, because it will give the developers a better understanding of what the code does. In such a case something like mpi4py would come to mind.

Of course having a GPU specifically for simulation purposes could mean that something like PyOpenCL may be even better.
I mention "simulation", because the machine will be calculating variations on what is largely the same problem, ie not be a general purpose machine.

So in summary:
1- For raw processing speed with a multi-core CPU and a GPU, would a openCL solution or Boost.MPI solution be recommended?
2- Should the Python solution be used only for high level functionality, such as handling data upon return, or does Python compromise speed too much?
 
Login or Register to Ask a Question

Previous Thread | Next Thread

7 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Redploymnet of python application on UNIX Server

I have created the python application, which was deployed on UNIX server but due to some certain issues I have to redeploy the application every time while logging in to the server I am trying to make it work permanently on that server even when I am not using the UNIX server also Any... (1 Reply)
Discussion started by: varul29
1 Replies

2. Shell Programming and Scripting

Python GNU parallel single command on multiple cores

Hello, I have a 4 core machine. Here is my initial script cd /work/ python script.py input.txt output.txt 1 2 3 This script runs for 1.5hrs. So I read across the web and figured out that you can use GNU parallel to submit multiple jobs using parallel. But I am not sure if I can run... (4 Replies)
Discussion started by: jacobs.smith
4 Replies

3. Shell Programming and Scripting

Python Programming for asn1 file

Hi. Has anyone here got an experience doing conversion from asn1 format to a readable format so that it can be processed by Oracle? I want to load the data into a table. This is a CDR file. Attached is the pairing file. Please remove the .txt at the end.... (1 Reply)
Discussion started by: aimy
1 Replies

4. UNIX for Advanced & Expert Users

Python Programming for ASN.1 file

Hi. Has anyone here got an experience doing conversion from asn1 format to a readable format so that it can be processed by Oracle? I want to load the data into a table. This is a CDR file. Attached is the pairing file. Please remove the .txt at the end. Someone said that it is possible... (1 Reply)
Discussion started by: aimy
1 Replies

5. Debian

Programming, Python.

I do some Python programming in windows, understand how to use python in windows... However I do not know how to use python in Linux. I do know the commands n such are the same but there isn't any IDLE or anything its ran straight from the terminal by typing python but I have never used python that... (2 Replies)
Discussion started by: Cryptek
2 Replies

6. Programming

Modifying sniffex.c to include concepts of parallel programming or threads

HI For the past 1 week i have been trying to include the concepts of parallel programming or thread in the sniffex.c code. Haven't been able to.. Please suggest sm appropriate modifications to the following code: /* * sniffex.c * * Sniffer example of TCP/IP packet capture using... (1 Reply)
Discussion started by: aka.bhagvanji
1 Replies

7. Programming

ftp application using socket programming

i have made a ftp application in socket programming which uses TCP/IP .. i have the problem runing the only problem is on the client side i take the user input for the file to be downloaded from the command promt. write(s, argv, strlen(argv)+1); // this is how i write in client side argv is... (1 Reply)
Discussion started by: toughguy2handle
1 Replies
Login or Register to Ask a Question
BOOST.BUILD(1)							   User Commands						    BOOST.BUILD(1)

NAME
Boost.Build - software build tool DESCRIPTION
Boost.Build 2011.04-svn Project-specific help: Project has jamfile at Jamroot Usage: bjam [options] [properties] [install|stage] Builds and installs Boost. Targets and Related Options: install Install headers and compiled library files to the ======= configured locations (below). --prefix=<PREFIX> Install architecture independent files here. Default; C:Boost on Win32 Default; /usr/local on Unix. Linux, etc. --exec-prefix=<EPREFIX> Install architecture dependent files here. Default; <PREFIX> --libdir=<DIR> Install library files here. Default; <EPREFIX>/lib --includedir=<HDRDIR> Install header files here. Default; <PREFIX>/include stage Build and install only compiled library files ===== to the stage directory. --stagedir=<STAGEDIR> Install library files here Default; ./stage Other Options: --build-type=<type> Build the specified pre-defined set of variations of the libraries. Note, that which variants get built depends on what each library supports. minimal (default) - Builds a minimal set of variants. On Windows, these are static multithreaded libraries in debug and release modes, using shared runtime. On Linux, these are static and shared multithreaded libraries in release mode. complete - Build all possible variations. --build-dir=DIR Build in this location instead of building within the distribution tree. Recommended! --show-libraries Displays the list of Boost libraries that require build and installation steps, then exit. --layout=<layout> Determines whether to choose library names and header locations such that multiple versions of Boost or multiple compilers can be used on the same system. versioned - Names of boost binaries include the Boost version number, name and version of the compiler and encoded build properties. Boost headers are installed in a subdirectory of <HDRDIR> whose name contains the Boost version number. tagged -- Names of boost binaries include the encoded build properties such as variant and threading, but do not including compiler name and version, or Boost version. This option is useful if you build several variants of Boost, using the same compiler. system - Binaries names do not include the Boost version number or the name and version number of the compiler. Boost headers are installed directly into <HDRDIR>. This option is intended for system integrators who are building distribution packages. The default value is 'versioned' on Windows, and 'system' on Unix. --buildid=ID Adds the specified ID to the name of built libraries. The default is to not add anything. --python-buildid=ID Adds the specified ID to the name of built libraries that depend on Python. The default is to not add anything. This ID is added in addition to --buildid. --help This message. --with-<library> Build and install the specified <library> If this option is used, only libraries specified using this option will be built. --without-<library> Do not build, stage, or install the specified <library>. By default, all libraries are built. Properties: toolset=toolset Indicates the toolset to build with. variant=debug|release Select the build variant link=static|shared Whether to build static or shared libraries threading=single|multi Whether to build single or multithreaded binaries runtime-link=static|shared Whether to link to static or shared C and C++ runtime. Configuration help: Configuration file at /build/other/boost1.49-1.49.0/tools/build/v2/user-config.jam This file is used to configure your Boost.Build installation. You can modify this file in place, or you can place it in a permanent location so that it does not get overwritten should you get a new version of Boost.Build. See: http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html for documentation about possible permanent locations. General command line usage: bjam [options] [properties] [targets] Options, properties and targets can be specified in any order. Important Options: * --clean Remove targets instead of building * -a Rebuild everything * -n Don't execute the commands, only print them * -d+2 Show commands as they are executed * -d0 Supress all informational messages * -q Stop at first error * --debug-configuration Diagnose configuration * --debug-building Report which targets are built with what properties * --debug-generator Diagnose generator search/execution Further Help: The following options can be used to obtain additional documentation. * --help-options Print more obscure command line options. * --help-internal Boost.Build implementation details. * --help-doc-options Implementation details doc formatting. ...found 1 target... Boost.Build 2011.04-svn February 2013 BOOST.BUILD(1)