About

I am Ph.D. graduated in computer architecture who did M.S. in computing and B.S. in computer engineering. During pursuing my PhD under the supervision of Dr Ali Zakerolhoseini and mentored by Prof Georgi Gaydadjiev and Prof Koen Bertels, I worked towards the optimization of the design tool, algorithms, and operating system in runtime reconfigurable systems. The contributions towards this study were two-fold, wherein the synthesis scheme, Data Flow Graphs associated with high computational kernels were merged to create an optimal data-path. Consequently, a new runtime scheduling algorithm for the management of the tasks in multitasking reconfigurable systems was introduced. These contributions were also my primary research field where I was a postdoc fellow at the Technical University of Delft.

Emergent of multicore systems inspired me to use N-way node and hyper-threading technology to accelerate the algorithms and demonstrate thread level parallelism for time consuming algorithms and big data processing. We used this platform to accelerate NP problems such as Louvain community detection in social network graphs. We parallelized hierarchal clustering algorithm in community detection algorithms. By increasing the amount of data generated in applications we need parallel data processing. We have tried to this end in online recommender systems by proposing a high speed parallel Matrix Factorization algorithm for big data processing.

Also, I have used paralleling to finding the optimal answer of Integer Linear Programming (ILP) models which is an NP-Hard and a computational challenge problem. We addressed this challenge by developing exact parallel branch and bound algorithms, which are capable of solving large-scale ILP models derived from behavioural synthesis. Also we proposed parallel genetic algorithms as a family of metaheuristic algorithms capable of adjusting and redesigning parameters and operations according to the characteristics of large ILP models derived from a behavioural synthesis of digital circuits.

Rapid advances in developing multicore systems, GPUs, and reconfigurable systems used in heterogeneous platforms have motivated me to step back and look at the whole system as a heterogeneous parallel platform. Assuredly, challenging parallel problems in big data processing such as recommender systems and deep learning methods need such computing systems. Hence efficient implementation of these algorithms is another aspect of my future contributions.

I have successfully graduated two Ph.D. candidates on parallel implementation of solving challenging problems. In addition, I have supervised several M.S. students and have managed BS projects in the field of computer science especially parallel computing.




Research

Interests

  • High Performance Computing, Parallel Processing, Reconfigurable Systems
  • Recommender Systems, Data Sciences
  • Big Data Processing

Recent Articles

  • Fatemeh Elahi, Mahmood Fazlali, Hadi Tabatabaee Malazi, Mehdi Elahi, “Parallel Fractional Stochastic Gradient Descent withAdaptive Learning for Recommender Systems”, Under revision in IEEE Transactions on Parallel and Distributed Systems.
  • Mohammad K Fallah, Mahmood Fazlali, Masoud Daneshtalab, ” A Symbiosis Between Population Based Incremental Learning and LP-Relaxation Based Parallel Genetic Algorithm for Solving Integer Linear Programming Models ” accepted in Computing Journal, Speringer.
  • Maryam Mohammadi, Mahmood Fazlali, Mahdi Hosseinzadeh, ” Parallel Louvain Community Detection Algorithm Based on Dynamic Thread Assignment on Graphic Processing Unit, accepted in Journal of Electrical and Computer Engineering Innovations.
  • Maryam Mohammadi, Mahmood Fazlali, Mahdi Hoseinzadeh, ” Accelerating Louvain Community Detection Algorithm on Graphic Processor Unit ” in the Journal of Supercomputing, 77 (6), 6056-6077, (2021), Springer.
  • Mohammad K Fallah, Mahmood Fazlali, ” Parallel Branch and Bound Algorithm for Solving  Integer Linear Programming Models Drived from Behavioural Synthesys ” in Parallel Computing Journal, , 101, (2021), Elsevier.
  • Mina Mirhosseini, Mahmood Fazlali, Hadi Tabatabaee, Kamyar Eizadi, Hossein Nezamabadi-pour ” Parallel Quadrivalent Quantum-Inspired Gravitational Search Algorithm on Heterogeneous Platform for Wireless Sensor Network “,  in the Computers& Electrical Enginiering Journal, 92, (2021), Elsevier.
  • Mina Mirhosseini, Mahmood Fazlali, Parallel and Exact Method for Solving n-Similarity” Problem, Journal of Electrical and Computer Engineering Innovations,  September, 8 (2), 193-200, (2020).
  • Mohammad K Fallah, Mina Mirhosseini, Mahmood Fazlali, Masoud Daneshtalab ” Scalable Parallel Genetic Algorithm For Solving Large Integer Linear Programming Models Derived From Behavioral Synthesis“, 28th Euromicro International Conference on Parallel, Distributed, and Network-Based Processing, PDP2020, Vasteras, Sweden, 11-13 March 2020.
  • Neda  Gholami, Mohammad Mahdi Dehshibi, Andy Adamatzky, A Rueda-Toicen, H Zenil, Mahmood Fazlali, A Novel Method for Reconstructing CT Images in GATE/GEANT4 with Application in Medical Imaging: A Complexity Analysis ApproachJournal of Information Processing 28, 161-168.
  • Mohammad K Fallah , Vahid Salehi Keshvari, Mahmood Fazlali, ” Parallel Hybrid Genetic Algorithm for Solving the Maximum Clique Problem“, accepted in High Performance Computing and Big Data Analytics TopHPC 2019, Tehran, Iran, 23-25 April 2019.
  • Mahmood Fazlali, Naemeh Hosseinpour, Mohammad K Fallah, Seyed Ali Katanforoush, “Accelerating Datapath Merging by Task Parallelization on Multicore Systems“,  International Journal of Parallel, Emergent and Distributed Systems, 34(5), 615-628 (2019), Taylor&Framcis.
  • Saeideh Kabirirad, Mahmood Fazlali, Ziba Eslami, ” High Speed GPU Implementation of a SecretSharing Scheme Based on Cellular Automata“, The Journal of Supercomputing, 75, 7314-7336 (2019), Springer.
  • Masoud Nosrati, Mahmood Fazlali, “ Community Based Replica Management in Distributed Systems“, in International Journal of Web Information Systems, 14(1), 41-61 (2018), Emerald.
  • Mahmood Fazlali, Ehsan Moradi, Hadi Tabatabaee, “Adaptive Parallel Louvain Community Detection on a Multicore Platform”, in Microprocessor and Microsystem, 54, 26-34 (2017), Elsevier.
  • Mohammad Mahdi Dehshibi, Mohammad Mahdi Dehshibi, Mahmood Fazlali, Omid Tallaee, Hossein Samadyar, amshid Shanbehzadeh, “A Hybrid Bio-inspired Learning Algorithm for Image Segmentation Using Multilevel Thresholding,” in Multimedia Tools and Applications, 76(14), 15951-15986 (2017) Springer.
  • Fazeleh Sadat Kazemian , Mahmood Fazlali, Ali Katanforoush, Mojtaba Rezvani, ” Parallel Implementation of Quorum Planted (l,d) Motif Search on Multi-core/Many-core Platforms,” in Microprocessor and Microsystem, 46(1), 255-263 (2016) Elsevier.
  • Ehsan Moradi, Mahmood Fazlali, Hadi Tabatabaee malazi, ” Fast Parallel Community Detection Algorithm Based on Modularity “,  in 18th CSI International Symposium on Computer Architecture and Digital Systems (CADS), 7-8 October 2015, Tehran, Iran.
  • Mahmood Fazlali, Hadi Valikhani, Somayeh Timarchi, Hadi Tabatabaee, ” Fast Architecture for Decimal Digit Multiplication,” in Microprocessor and Microsystem, Volume 39(4-5), 296-301 (2015),  Elsevier.

Editor and Review Activities

  • Elsevier, Array Journal (Associate Editor)
  • Taylor & Francis, International Journal of Parallel, Emergent and Distributed Systems (Reviewer)
  • Springer, Journal of Supercomputing (Reviewer)
  • Parallel Processing Letters (Reviewer)
  • Oxford, Computer Journal (Reviewer)
  • Elsevier, Journal of Computational Science (Reviewer)
  • CSI Symposium on Computer Architecture& Digital Systems (Publication chair, Track chair)
  • Elsevier Journal of Microprocessor and Microsystem “Embedded Software Design” (Reviewer)
  • ACM Transactions in Embedded Computing Systems “TECS” (Reviewer)
  • IET Journal on Computer & Digital Techniques (Reviewer)
  • Elsevier Journal of Computers & Electrical Engineering (Reviewer)
  • IEEE International Conference on Application-Specific Systems, Architectures and Processors “ASAP” (TPC, Reviewer)
  • Springer, Neural Computing and Applications Journal (Reviewer)
  • Springer, Iranian Journal of Science and Technology (Reviewer)



Ph.D. Students

Fatemeh Elahi (Supervisor) / (2018- Expected 2022)

DISSERTATION : Designing an Efficient Recommender System Using High-performance Computing Tools

Mina Mirhosseini (Supervisor) / (2018- Expected 2022)

DISSERTATION : Paralleling of Hybrid Branch & Bound and Metaheuristic Algorithms for Solving Behavioral Synthesis Prblems

Mohammad K Fallah (Supervisor) / (2016- 2021)

DISSERTATION : Developing Parallel Algorithms to Solve Mixed Integer Linear Programming with Application on Hardware Behavioral Synthesis
CURRENT POSITION : Researcher , Shahid Beheshti University

Maryam Mohammadi (Supervisor) / (2016- 2020)

DISSERTATION : Paralleization of Clustering Algorithm with Usage in Graph Community Detection
CURRENT POSITION : Islamic Azad University Najafabad Branch

Rouhollah Fallah (Advisor) / (2017- 2020)

DISSERTATION : Modifying and Optimizing Surface Sound Absorption Coefficient in Metal Foam Using Theoretical sound propagation models
CURRENT POSITION : Assistant Professor , Shahid Sadoughi University of Medical Sciences

Saeideh Kabirirad (Advisor) / (2014- 2019)

DISSERTATION : Secret Sharing Schemes Based on Boolean Operators
CURRENT POSITION : Assistant Professor , Birjand University of Technology




Teaching

Parallel Computing

In Parallel Computing I teach the basic Concepts of Parallel Computing and parallel Paradigms. This includes but not limited to Shared memory Paradigms, Distributed memory Paradigms, virtual shared memory Paradigms, data flow Paradigms and heterogeneous platforms. Also I try to teach parallel programming for GPU and multicore systems by CUDA and Open-MP besides teaching MPI for distributed platforms.

Advance Operating System

This course I teach the main concept of multicore operating systems such as scheduling algorithms, caching algorithm, imbedded multicore OS, and algorithms. Other concepts are advanced topics which can not be thought in OS such as virtualization, Cloud computing and security in OS.

Reconfigurable Systems

In this course students learn the basic concepts of Field Programmable Arrays (FPGA) and synthesizers. Other topics like Run Time Reconfigurable systems, Compression and new advanced topics is covered in this course.

Hardware Description Language (HDL)

In this course students learn how to write executable specifications for hardware and simulate and model a piece of hardware before it is created physically. Behavioral specification, Dataflow specification and structural design are thought in the course. They learn with the ability to model and synthesis a piece of hardware before it is created physically. At the end of the course I expect the students can create a package of HDL Implementation for a simple hardware which is synthesizable.

Distributed Systems

In distributed systems course students learn how they can aggregate the resources of networked computers to construct available and scalable Publications. In the course we teach the abstractions, design and implementation techniques that enable the building of fast, scalable, fault-tolerant distributed systems. Topics include network programming, consistency, fault tolerance, consensus, security, and several case studies of distributed systems.

Operating Systems

In Operating System (OS) I try to teach the basic knowledge of design, implement and use an operating system. This includes the concepts of the operating system, data structures, and algorithms. Beside this students learn how to use OS and write programs by using threads, employing scheduling algorithms and using system resources in an efficient manner.

Fundamentals of Computer Systems

In Operating System (OS) I try to teach the basic knowledge of design, implement and use an operating system. This includes the concepts of the operating system, data structures, and algorithms. Beside this students learn how to use OS and write programs by using threads, employing scheduling algorithms and using system resources in an efficient manner.

Computer Architecture

In this course I teach the fundamental concepts in the design and organization of modern computer systems. Then students get an understanding of the different types of architectures of modern microprocessors and the theory behind how they are designed. Apart from this, it dives into the details of cache memory and computer arithmetic. In this lessons attendance learn about pipelines, superscalar architecture, and different hazards. They explore common techniques to optimize performance and manage memory.

Logic Circuits

This is a basic course in computer architecture and computer science. In this course I teach following concepts. At first it starts with performing arithmetic operations in some number systems. Then we learn how to manipulate Boolean algebraic structures and a simplifying the Boolean expressions using Karnaugh Map. Also how to implement the Boolean Functions using NAND and NOR gates as another method for performing functions. At last we analyze and design various combinational logic circuits. In the second part of the course we start by understanding the basic functions of flip-flops. Then we understand the importance of state diagram representation of sequential circuits and analyze and design clocked sequential circuits. This course makes significant contributions to the following program outcomes: an ability to apply knowledge of mathematics, science, and engineering. An ability to design and conduct experiments, as well as to analyze and interpret data. An ability to design a system, component , or process to meet desired needs within realistic constraints. An ability to identify, formulate, and solve engineering problems. An ability to use the techniques, skills, and modern engineering tools necessary for engineering practice.

Programming Fundamentals

This is the first course in the field of computer science and engineering I am teaching by specialization to Programming in C, but its lessons extend to any language you might want to learn. Because programming is fundamentally about figuring out how to solve a class of problems and writing the algorithm, a clear set of steps to solve any problem. This course will introduce you to a powerful problem-solving process which you can use to solve any programming problem. In this course, you will learn how to develop an algorithm, then progress to reading code and understanding how programming concepts relate to algorithms.




Contact

Office Tel: (98)21-2990-5669

Email Address: fazlali@sbu.ac.ir

Homepage: http://faculties.sbu.ac.ir/~fazlali/

Address: Department of Data & Computer Sciences, Shahid Beheshti University, Tehran, Iran