Re: [Open Babel] Openbabel in Python in concurrent processes

2012-07-20 Thread Craig James
Did you see this article?  You didn't say what Linux you are using, but if
it's Ubuntu, this may be of interest.

http://blog.xen.org/index.php/2011/11/29/baremetal-vs-xen-vs-kvm-redux/

Craig

On Fri, Jul 20, 2012 at 1:01 PM, Maciek Wójcikowski
wrote:

> I also thought about L1 and L2 caches. But underlying problem seams to be
> much simpler. The server is VM on modern AMD server (4x 12 core opteron +
> 96gigs of DDR3 ECC ram). Due to virtualisation heavy memory IO (memory
> usage was less tan 50% including caches) minimization was running so slow.
> I've done same test on Intel Desktop (i7-2600) and process execution time
> changed from 18 min (single proc.) to 21 min (8 concurrent proc.). I'd say
> that the bias is due to Intel Turbo technology and HT (4 physical cores).
>
> The bottom line should be: don't use virtualisation (at least Xen) for
> memory intensive computing. I must say that I'm pretty disappointed with
> those results, although it's quite obvious...
>
> Out of curiosity I'm going to rerun the tests on KVM and probably on
> OpenVZ to see how it goes there.
> 
> Pozdrawiam,  |  Best regards,
> Maciek Wójcikowski
> mac...@wojcikowski.pl
>
>
> 2012/7/20 Craig James 
>
>>
>>
>> On Fri, Jul 20, 2012 at 2:16 AM, Maciek Wójcikowski <
>> mac...@wojcikowski.pl> wrote:
>>
>>> Hi,
>>> I'm doing some scripting in Python to minimize ligands and want to run
>>> them concurrently on SMP server (many processes, one core per proc.). The
>>> problem that I hit is that when I run one instance, process take 100% CPU
>>> and runs for ~25min. For the same set if I run 32 concurrent processes it
>>> runs from 60-130 min. Why is that? Server has 32 phisical cores (AMD
>>> Opteron) so there is no turbo mode, like in intel, to produce such power
>>> increase. Script is not doing any IO (at least I don't know of it, it gets
>>> data from MySQL, doing only SELECTs).
>>>
>>> How can I debug this issue? Any thoughts?
>>>
>>
>> There are many reasons why this might happen.  You should do an
>> experiment starting with two process, then four, eight, etc ... and see
>> where it starts to slow down.
>>
>> You say 32 CPUs, but now many CPU chips?  Is this  4x8-core CPUs,
>> 8x4core, or something else?
>>
>> When you run each process, how much memory does it use?  How much memory
>> do you have?
>>
>> My first guess is that you are running into problems with memory
>> contention -- processors fighting each other for memory.  This can be
>> either cache memory (for small processes) or main memory (if the ligand
>> minimization is a very large process).
>>
>> Modern CPUs are *much* faster than modern memory, which is why they have
>> multi-level (L1 and L2) caches (see
>> http://en.wikipedia.org/wiki/CPU_cache), and also have "NUMA" memory
>> architecture (see http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access).
>> When you run a single process, it gets full access to all cache memory and
>> all main memory.  When you run up to N processes where N is the number of
>> CPU chips (not cores), then each CPU has full access to its caches, but
>> there may be contention for main memory.  When you run N processes where N
>> is the total number of CPUs (in your case, 32), then each CPU has to share
>> access to both main memory and to the on-chip memory caches and data
>> channels.
>>
>> The only time a process will scale from 1 to 32 on a 32-CPU system is if
>> each process is compute-bound and uses so little memory that all 32
>> processors are mostly working from their internal caches and don't ever
>> have to wait for memory access.
>>
>> If you want to read a long but fascinating article about how this affects
>> other projects, check this one out.  It's about MySQL running very slowly
>> on very fast CPUs because of memory contention.
>>
>>
>> http://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/
>>
>>
>> Craig
>>
>>
>>
>>> 
>>> Pozdrawiam,  |  Best regards,
>>> Maciek Wójcikowski
>>> mac...@wojcikowski.pl
>>>
>>>
>>> --
>>> Live Security Virtual Conference
>>> Exclusive live event will cover all the ways today's security and
>>> threat landscape has changed and how IT managers can respond. Discussions
>>> will include endpoint security, mobile security and the latest in malware
>>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>>> ___
>>> OpenBabel-discuss mailing list
>>> OpenBabel-discuss@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
>>>
>>>
>>
>
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/

Re: [Open Babel] Openbabel in Python in concurrent processes

2012-07-20 Thread Maciek Wójcikowski
I also thought about L1 and L2 caches. But underlying problem seams to be
much simpler. The server is VM on modern AMD server (4x 12 core opteron +
96gigs of DDR3 ECC ram). Due to virtualisation heavy memory IO (memory
usage was less tan 50% including caches) minimization was running so slow.
I've done same test on Intel Desktop (i7-2600) and process execution time
changed from 18 min (single proc.) to 21 min (8 concurrent proc.). I'd say
that the bias is due to Intel Turbo technology and HT (4 physical cores).

The bottom line should be: don't use virtualisation (at least Xen) for
memory intensive computing. I must say that I'm pretty disappointed with
those results, although it's quite obvious...

Out of curiosity I'm going to rerun the tests on KVM and probably on OpenVZ
to see how it goes there.

Pozdrawiam,  |  Best regards,
Maciek Wójcikowski
mac...@wojcikowski.pl


2012/7/20 Craig James 

>
>
> On Fri, Jul 20, 2012 at 2:16 AM, Maciek Wójcikowski  > wrote:
>
>> Hi,
>> I'm doing some scripting in Python to minimize ligands and want to run
>> them concurrently on SMP server (many processes, one core per proc.). The
>> problem that I hit is that when I run one instance, process take 100% CPU
>> and runs for ~25min. For the same set if I run 32 concurrent processes it
>> runs from 60-130 min. Why is that? Server has 32 phisical cores (AMD
>> Opteron) so there is no turbo mode, like in intel, to produce such power
>> increase. Script is not doing any IO (at least I don't know of it, it gets
>> data from MySQL, doing only SELECTs).
>>
>> How can I debug this issue? Any thoughts?
>>
>
> There are many reasons why this might happen.  You should do an experiment
> starting with two process, then four, eight, etc ... and see where it
> starts to slow down.
>
> You say 32 CPUs, but now many CPU chips?  Is this  4x8-core CPUs, 8x4core,
> or something else?
>
> When you run each process, how much memory does it use?  How much memory
> do you have?
>
> My first guess is that you are running into problems with memory
> contention -- processors fighting each other for memory.  This can be
> either cache memory (for small processes) or main memory (if the ligand
> minimization is a very large process).
>
> Modern CPUs are *much* faster than modern memory, which is why they have
> multi-level (L1 and L2) caches (see http://en.wikipedia.org/wiki/CPU_cache),
> and also have "NUMA" memory architecture (see
> http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access).  When you run a
> single process, it gets full access to all cache memory and all main
> memory.  When you run up to N processes where N is the number of CPU chips
> (not cores), then each CPU has full access to its caches, but there may be
> contention for main memory.  When you run N processes where N is the total
> number of CPUs (in your case, 32), then each CPU has to share access to
> both main memory and to the on-chip memory caches and data channels.
>
> The only time a process will scale from 1 to 32 on a 32-CPU system is if
> each process is compute-bound and uses so little memory that all 32
> processors are mostly working from their internal caches and don't ever
> have to wait for memory access.
>
> If you want to read a long but fascinating article about how this affects
> other projects, check this one out.  It's about MySQL running very slowly
> on very fast CPUs because of memory contention.
>
>
> http://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/
>
>
> Craig
>
>
>
>> 
>> Pozdrawiam,  |  Best regards,
>> Maciek Wójcikowski
>> mac...@wojcikowski.pl
>>
>>
>> --
>> Live Security Virtual Conference
>> Exclusive live event will cover all the ways today's security and
>> threat landscape has changed and how IT managers can respond. Discussions
>> will include endpoint security, mobile security and the latest in malware
>> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
>> ___
>> OpenBabel-discuss mailing list
>> OpenBabel-discuss@lists.sourceforge.net
>> https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
>>
>>
>
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss


Re: [Open Babel] Problem with gen3D

2012-07-20 Thread Geoff Hutchison
> Thanks for the reply - this problem occurs in the builder.Build method
> before the force field optimization, where initial coordinates are
> given to each atom.

It's not so much an issue of the "constraints" as the fact that you have a 
messy fused-ring system. The ring perception and particularly aromatization 
routines perform very poorly on systems with large numbers of fused rings.

I'm currently coding a distance-geometry 3D coordinate generation algorithm, 
but it will probably be another few days before I have anything particularly 
useful. I'm saving your e-mail as an example that should work quickly and I'll 
send you a message if you'd like to try out the development code.

-Geoff
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss


Re: [Open Babel] Problem with gen3D

2012-07-20 Thread Peter Sadowski
Thanks for the reply - this problem occurs in the builder.Build method
before the force field optimization, where initial coordinates are
given to each atom.

-Peter

On Fri, Jul 20, 2012 at 8:02 AM, scott_m  wrote:
> Gen3d does a steepest descent optimization, weighted rotor search and then a
> conjugate gradients optimization (see
> http://forums.openbabel.org/what-does-gen3d-do-under-the-hood-td3397296.html).
> You might want to try a simple forcefield optimization to start with (like
> steepest descent) and see how that works.
>
>
>
>
> --
> View this message in context: 
> http://forums.openbabel.org/Problem-with-gen3D-tp4655296p4655300.html
> Sent from the General discussion mailing list archive at Nabble.com.
>
> --
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> ___
> OpenBabel-discuss mailing list
> OpenBabel-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openbabel-discuss

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss


Re: [Open Babel] Problem with gen3D

2012-07-20 Thread scott_m
Gen3d does a steepest descent optimization, weighted rotor search and then a
conjugate gradients optimization (see
http://forums.openbabel.org/what-does-gen3d-do-under-the-hood-td3397296.html).
You might want to try a simple forcefield optimization to start with (like
steepest descent) and see how that works.




--
View this message in context: 
http://forums.openbabel.org/Problem-with-gen3D-tp4655296p4655300.html
Sent from the General discussion mailing list archive at Nabble.com.

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss


Re: [Open Babel] Openbabel in Python in concurrent processes

2012-07-20 Thread Craig James
On Fri, Jul 20, 2012 at 2:16 AM, Maciek Wójcikowski
wrote:

> Hi,
> I'm doing some scripting in Python to minimize ligands and want to run
> them concurrently on SMP server (many processes, one core per proc.). The
> problem that I hit is that when I run one instance, process take 100% CPU
> and runs for ~25min. For the same set if I run 32 concurrent processes it
> runs from 60-130 min. Why is that? Server has 32 phisical cores (AMD
> Opteron) so there is no turbo mode, like in intel, to produce such power
> increase. Script is not doing any IO (at least I don't know of it, it gets
> data from MySQL, doing only SELECTs).
>
> How can I debug this issue? Any thoughts?
>

There are many reasons why this might happen.  You should do an experiment
starting with two process, then four, eight, etc ... and see where it
starts to slow down.

You say 32 CPUs, but now many CPU chips?  Is this  4x8-core CPUs, 8x4core,
or something else?

When you run each process, how much memory does it use?  How much memory do
you have?

My first guess is that you are running into problems with memory contention
-- processors fighting each other for memory.  This can be either cache
memory (for small processes) or main memory (if the ligand minimization is
a very large process).

Modern CPUs are *much* faster than modern memory, which is why they have
multi-level (L1 and L2) caches (see http://en.wikipedia.org/wiki/CPU_cache),
and also have "NUMA" memory architecture (see
http://en.wikipedia.org/wiki/Non-Uniform_Memory_Access).  When you run a
single process, it gets full access to all cache memory and all main
memory.  When you run up to N processes where N is the number of CPU chips
(not cores), then each CPU has full access to its caches, but there may be
contention for main memory.  When you run N processes where N is the total
number of CPUs (in your case, 32), then each CPU has to share access to
both main memory and to the on-chip memory caches and data channels.

The only time a process will scale from 1 to 32 on a 32-CPU system is if
each process is compute-bound and uses so little memory that all 32
processors are mostly working from their internal caches and don't ever
have to wait for memory access.

If you want to read a long but fascinating article about how this affects
other projects, check this one out.  It's about MySQL running very slowly
on very fast CPUs because of memory contention.

http://blog.jcole.us/2010/09/28/mysql-swap-insanity-and-the-numa-architecture/


Craig



> 
> Pozdrawiam,  |  Best regards,
> Maciek Wójcikowski
> mac...@wojcikowski.pl
>
>
> --
> Live Security Virtual Conference
> Exclusive live event will cover all the ways today's security and
> threat landscape has changed and how IT managers can respond. Discussions
> will include endpoint security, mobile security and the latest in malware
> threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
> ___
> OpenBabel-discuss mailing list
> OpenBabel-discuss@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/openbabel-discuss
>
>
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss


Re: [Open Babel] about usage of openBabel

2012-07-20 Thread Craig James
Ozgun,

On Thu, Jul 19, 2012 at 8:18 PM, ozgun bursali wrote:

> I am a computer engineering student from Turkey and I am doing my
> internship right now in Arizona State University. As a part of my work I
> need to convert mol files to inchi files. I searched in google and read
> many articles about this topic and I found your programme. Thanks for
> sharing that. Anyway my question is how to I use it in my project and also
> Can I use it because this is a research project for the class.
>

Welcome to the OpenBabel community.  OpenBabel is a free program released
under the GNU Public License (GPL) version 2.  That means you can use it
for anything you like, for free.  See this web site:

  http://www.gnu.org/licenses/gpl-2.0.html

If you have questions, send email to this forum (not to the individual
members) and you will almost always get a reply the same day.

Good luck with your project.

Craig
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss


[Open Babel] about usage of openBabel

2012-07-20 Thread ozgun bursali
Dear Sir or Madam


I am a computer engineering student from Turkey and I am doing my
internship right now in Arizona State University. As a part of my work I
need to convert mol files to inchi files. I searched in google and read
many articles about this topic and I found your programme. Thanks for
sharing that. Anyway my question is how to I use it in my project and also
Can I use it because this is a research project for the class.

Thanks for your time and consideration

Ozgun Bursali
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss


[Open Babel] Problem with gen3D

2012-07-20 Thread Peter Sadowski
I've been having trouble with the 3D coordinate generation in Open
Babel. The generator hangs on particular molecules with complicated
bonding, and my guess is that the code gets stuck in an infinite loop
when it can't satisfy all the constraints while building a 3D
structure.

For example the following molecule fragment, consisting of two merged
Boron icosahedrons, appears to run forever.

obabel 
-:"[Pd]1234567[B]89%10%11%12%13[B]%14%15%16%17%181[B]1%192[B]2%203[B]348[B]48%20[B]%20%192[B]2%151[B]19%14([B]%1034[B]8%2021)[B]12%12%17[B]34%13[B]85%11[B]596[B]67%16[B]7%109[B]385[B]24%10[B]%18167"
-o sdf -O temp.sdf --gen3D

I've tried working around this problem by running gen3D on each
molecule as it's own subprocess, but this has become annoying. My next
step is to modify the source code to avoid this problem, or at least
add a timeout option so that the code returns. I was wondering if
anyone else on this list was having the same problems, and if anyone
had any ideas.

--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/
___
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss


[Open Babel] Openbabel in Python in concurrent processes

2012-07-20 Thread Maciek Wójcikowski
Hi,
I'm doing some scripting in Python to minimize ligands and want to run them
concurrently on SMP server (many processes, one core per proc.). The
problem that I hit is that when I run one instance, process take 100% CPU
and runs for ~25min. For the same set if I run 32 concurrent processes it
runs from 60-130 min. Why is that? Server has 32 phisical cores (AMD
Opteron) so there is no turbo mode, like in intel, to produce such power
increase. Script is not doing any IO (at least I don't know of it, it gets
data from MySQL, doing only SELECTs).

How can I debug this issue? Any thoughts?

Pozdrawiam,  |  Best regards,
Maciek Wójcikowski
mac...@wojcikowski.pl
--
Live Security Virtual Conference
Exclusive live event will cover all the ways today's security and 
threat landscape has changed and how IT managers can respond. Discussions 
will include endpoint security, mobile security and the latest in malware 
threats. http://www.accelacomm.com/jaw/sfrnl04242012/114/50122263/___
OpenBabel-discuss mailing list
OpenBabel-discuss@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/openbabel-discuss