[Cython] OpenMP problem

mark florisson markflorisson88 at gmail.com
Sun Jul 31 22:08:26 CEST 2011


On 31 July 2011 21:49, mark florisson <markflorisson88 at gmail.com> wrote:
> 2011/7/31 Vitja Makarov <vitja.makarov at gmail.com>:
>> I've tried openmp support with simple example:
>>
>> from cython.parallel cimport prange
>>
>> def mul(values):
>>    ret = 1
>>    for i in prange(values):
>>        ret *= i
>>    return ret
>>
>> And cython crashes:
>>
>> ((b04e040...)) vitja at vitja-laptop:~/work/cython-vitek/zzz$ make mul.so
>> /usr//bin/python  ../cython.py --gdb -v  mul.pyx -o mul.c
>> Compiling /home/vitja/work/cython-vitek/zzz/mul.pyx
>>
>> Error compiling Cython file:
>> ------------------------------------------------------------
>> ...
>> from cython.parallel cimport prange
>>
>> def mul(values):
>>    ret = 1
>>    for i in prange(values):
>>                         ^
>> ------------------------------------------------------------
>>
>> mul.pyx:5:26: stop argument must be numeric or a pointer (perhaps if a
>> numeric literal is too big, use 1000LL)
>>
>> Error compiling Cython file:
>> ------------------------------------------------------------
>> ...
>> from cython.parallel cimport prange
>>
>> def mul(values):
>>    ret = 1
>>    for i in prange(values):
>>                  ^
>> ------------------------------------------------------------
>>
>> mul.pyx:5:19: Compiler crash in AnalyseExpressionsTransform
>>
>> ModuleNode.body = StatListNode(mul.pyx:1:0)
>> StatListNode.stats[0] = DefNode(mul.pyx:3:0,
>>    modifiers = [...]/0,
>>    name = u'mul',
>>    num_required_args = 1,
>>    reqd_kw_flags_cname = '0',
>>    used = True)
>> File 'Nodes.py', line 337, in analyse_expressions: StatListNode(mul.pyx:4:4,
>>    is_terminator = True)
>> File 'Nodes.py', line 6553, in analyse_expressions:
>> ParallelRangeNode(mul.pyx:5:19,
>>    assigned_nodes = [...]/1,
>>    is_parallel = True,
>>    is_prange = True,
>>    valid_keyword_arguments = [...]/3)
>>
>> Compiler crash traceback from this point on:
>>  File "/home/vitja/work/cython-vitek/Cython/Compiler/Nodes.py", line
>> 6553, in analyse_expressions
>>    self.index_type, node.type)
>>  File "/home/vitja/work/cython-vitek/Cython/Compiler/PyrexTypes.py",
>> line 2624, in widest_numeric_type
>>    elif type1.rank < type2.rank:
>> AttributeError: 'PyObjectType' object has no attribute 'rank'
>> make: *** [mul.c] Ошибка 1
>> rm mul.c
>> ((b04e040...)) vitja at vitja-laptop:~/work/cython-vitek/zzz$
>>
>>
>>
>> --
>> vitja.
>> _______________________________________________
>> cython-devel mailing list
>> cython-devel at python.org
>> http://mail.python.org/mailman/listinfo/cython-devel
>>
>
> Thanks for the report, I pushed a fix:
> https://github.com/cython/cython/commit/e9f9fde70d5d96f418244a0640a63a966a2457c1
> . Seems like I forgot an error test for that.
>

I pushed it to release, should I rebase master on release now?


More information about the cython-devel mailing list