473,323 Members | 1,622 Online
Bytes | Software Development & Data Engineering Community
Post Job

Home Posts Topics Members FAQ

Join Bytes to post your question to a community of 473,323 software developers and data experts.

Python script and C++

Hi all,

I am new to python and currently I am working on a traffic simulation
which I plan to define the various agents using scripting. It's kind of like
scripting for non-playable character in games. I am thinking of using python
for this but I am concerned with running time. Is scripting a lot slower
compared to direct implementation in C++? Does compiling the script help in
any way? Also, can anyone recommend me a book that covers python in general
as well as C++ binding? Thanks.
Thuan Seah Tan
Nov 28 '06 #1
5 1508
Thuan Seah Tan wrote:
Hi all,

I am new to python and currently I am working on a traffic simulation
which I plan to define the various agents using scripting. It's kind of like
scripting for non-playable character in games. I am thinking of using python
for this but I am concerned with running time. Is scripting a lot slower
compared to direct implementation in C++? Does compiling the script help in
"Learning Python" is a good book to start learning Python. I don't think
you'll be better off in C++. If speed is of utmost importance for the
whole implementation, then I suggest C++ but well coded Python runs
atleast/near to C++ implementation. Otherwise, you can atleast code the
speed-savvy part of the implementation in C++. Ofcourse, Python object
model is based on a virtual machine (called PVM) which accounts for
slower start-up due to native function call conversion but you'll find
that learning curve is only a tiny fraction compared to C++. And you'll
surely love Python. =)
any way? Also, can anyone recommend me a book that covers python in general
as well as C++ binding? Thanks.
"Progamming in Python" is another excellent book that might be of help.
If you are developing on windows machine then
http://aspn.activestate.com/ASPN/Python has some helpful recipes.

C++ bindings in Python are handled by extending python objects and
manipulating it from C++ codes using the Python headers.

Also, http://python.org/docs should be a good reference.
Also Google for "vaults of parnassus" and Fredrik lundh's guide on Python.

Goodluck!
--
thanks,
nepBabu.cx
c c
.-.,;(")
..'`~C.-.c =W=

Nov 28 '06 #2
Thuan Seah Tan wrote:
Hi all,

I am new to python and currently I am working on a traffic simulation
which I plan to define the various agents using scripting. It's kind of like
scripting for non-playable character in games. I am thinking of using python
for this but I am concerned with running time. Is scripting a lot slower
compared to direct implementation in C++? Does compiling the script help in
any way? Also, can anyone recommend me a book that covers python in general
as well as C++ binding? Thanks.
Even if pure python turns out to be slow for some critical parts of
your application, there are quite a few ways to deal with it: psyco,
pyrex, weave/blitz, ctypes, SWIG, Boost-python, SIP, CXX, SCXX,
hand-written C extensions and perhaps more. Visit
http://www.scipy.org/PerformancePython for an example of taking a
simple pure Python function and boosting it using several different
tools. Check out the final comparison table first; the pyrex version is
less than half a second slower than the C++.

George

Nov 28 '06 #3
Thuan Seah Tan wrote:
Hi all,

I am new to python and currently I am working on a traffic simulation
which I plan to define the various agents using scripting. It's kind of like
scripting for non-playable character in games. I am thinking of using python
for this but I am concerned with running time. Is scripting a lot slower
compared to direct implementation in C++? Does compiling the script help in
any way?
Python is perfectly suitable for this use. Python was in use in video
games in this way when computers were a lot slower. I doubt that you
will need to bother compiling the script or see any observable
enhancement if you do.

One example I can remember is Kingdom Under Fire (2001).

Nov 28 '06 #4
In <11**********************@n67g2000cwd.googlegroups .com>, Ravi Teja
wrote:
> I am new to python and currently I am working on a traffic simulation
which I plan to define the various agents using scripting. It's kind of like
scripting for non-playable character in games. I am thinking of using python
for this but I am concerned with running time. Is scripting a lot slower
compared to direct implementation in C++? Does compiling the script help in
any way?

Python is perfectly suitable for this use. Python was in use in video
games in this way when computers were a lot slower.
There's a difference between simulations and games. The simulation will
not always be observed by a human being so it runs as fast as possible.
In games the speed of NPCs is usually limited to a level the player can
deal with.

But I think Python is fine for such a task. The only way to find out if
it may be to slow is writing a prototype and measure. Maybe it's a good
idea to design the API for the "NPCs" independent from the language so you
can also write them in C++ or another scripting language.

Ciao,
Marc 'BlackJack' Rintsch
Nov 28 '06 #5
On Tue, 28 Nov 2006 10:12:23 +0100, Marc 'BlackJack' Rintsch <bj****@gmx.netwrote:
In <11**********************@n67g2000cwd.googlegroups .com>, Ravi Teja
wrote:
>> I am new to python and currently I am working on a traffic simulation
which I plan to define the various agents using scripting. It's kind of like
scripting for non-playable character in games. I am thinking of using python
for this but I am concerned with running time. Is scripting a lot slower
compared to direct implementation in C++? Does compiling the script help in
any way?

Python is perfectly suitable for this use. Python was in use in video
games in this way when computers were a lot slower.

There's a difference between simulations and games. The simulation will
not always be observed by a human being so it runs as fast as possible.
In games the speed of NPCs is usually limited to a level the player can
deal with.
Yeah. Simulation can mean running for a week on the best hardware available,
with the most optimized code you can come up with. And a week may be
acceptable, while two weeks are not.
But I think Python is fine for such a task.
I am not so sure, but ...
The only way to find out if
it may be to slow is writing a prototype and measure.
.... this is a good approach.
Maybe it's a good
idea to design the API for the "NPCs" independent from the language so you
can also write them in C++ or another scripting language.
However, if that API requires thousands of calls per second during
simulation time, it doesn't help speed much, because calling C code from
Python is a pretty heavy thing in itself. The big win is when you spend a
lot of uninterrupted CPU time in C code.

One approach is to write the executive engine in C++ (once again: if needed)
and the compiler/configuration subsystem -- the thing that generates the
simulated world -- in Python. That's a perfect place for a flexible,
high-level language.

/Jorgen

--
// Jorgen Grahn <grahn@ Ph'nglui mglw'nafh Cthulhu
\X/ snipabacken.dyndns.org R'lyeh wgah'nagl fhtagn!
Nov 28 '06 #6

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

28
by: Erik Johnson | last post by:
This is somewhat a NEWBIE question... My company maintains a small RDBS driven website. We currently generate HTML using PHP. I've hacked a bit in Python, and generally think it is a rather...
2
by: DeepBleu | last post by:
When one is using an HTML form via a web broswer, the user submits the form contents and these are passed to a CGI Python script on the web server. I need to write a client script that connects to...
52
by: Olivier Scalbert | last post by:
Hello , What is the python way of doing this : perl -pi -e 's/string1/string2/' file ? Thanks Olivier
4
by: Tom Purl | last post by:
I just wrote a Python script that is going to be called from bash script. If the Python script fails, I want the bash script to also stop running. Unfortunately, I can't seem to get that to work. ...
17
by: Paul Rubin | last post by:
Dumb question from a Windows ignoramus: I find myself needing to write a Python app (call it myapp.py) that uses tkinter, which as it happens has to be used under (ugh) Windows. That's Windows...
9
by: TPJ | last post by:
First I have to admit that my English isn't good enough. I'm still studying and sometimes I just can't express what I want to express. A few weeks ago I've written 'Python Builder' - a bash...
3
by: krzychu | last post by:
Hi, I have installed brand new platform - Zope-2-7-6, Python 2.4.1, Plone 2.0.5, OS Debian 1:3.3.6-2. After import a old Plone site from the following platform Zope-2-7-4, Python 2.3.3, Plone...
6
by: manatlan | last post by:
I've got a trouble, and i think that anybody there can help me I've got a python script which i distribute in somes packages for *nix. This script is full of python and need python 2.4 ! And i'd...
37
by: John Salerno | last post by:
I contacted my domain host about how Python is implemented on their server, and got this response: ------------------- Hello John, Please be informed that the implementation of python in our...
6
by: tatamata | last post by:
Hello. How can I run some Python script within C# program? Thanks, Zlatko
0
by: DolphinDB | last post by:
Tired of spending countless mintues downsampling your data? Look no further! In this article, you’ll learn how to efficiently downsample 6.48 billion high-frequency records to 61 million...
0
isladogs
by: isladogs | last post by:
The next Access Europe meeting will be on Wednesday 6 Mar 2024 starting at 18:00 UK time (6PM UTC) and finishing at about 19:15 (7.15PM). In this month's session, we are pleased to welcome back...
0
by: Vimpel783 | last post by:
Hello! Guys, I found this code on the Internet, but I need to modify it a little. It works well, the problem is this: Data is sent from only one cell, in this case B5, but it is necessary that data...
1
by: PapaRatzi | last post by:
Hello, I am teaching myself MS Access forms design and Visual Basic. I've created a table to capture a list of Top 30 singles and forms to capture new entries. The final step is a form (unbound)...
1
by: CloudSolutions | last post by:
Introduction: For many beginners and individual users, requiring a credit card and email registration may pose a barrier when starting to use cloud servers. However, some cloud server providers now...
1
by: Defcon1945 | last post by:
I'm trying to learn Python using Pycharm but import shutil doesn't work
0
by: af34tf | last post by:
Hi Guys, I have a domain whose name is BytesLimited.com, and I want to sell it. Does anyone know about platforms that allow me to list my domain in auction for free. Thank you
0
by: Faith0G | last post by:
I am starting a new it consulting business and it's been a while since I setup a new website. Is wordpress still the best web based software for hosting a 5 page website? The webpages will be...
0
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 3 Apr 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome former...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.